Здравствуйте
Есть желание научиться самому делать Гарминовские контейнеры из Planet.osm (горный туризм, вело, да и вообще, не люблю дома сидеть).
Поэтому нужны карты мест, куда не доходит рука OSM-овских гуру, разных форматов (авто, топо-вело, как наиболее приближенных, универсал).
Попытка самостоятельно освоить osmosis и mkgmap - пока закончилась неудачей. Уж очень все специфично.
Формат WiKi - это скорее технический справочник, а не пособие для начинающих, которого нет.
Насколько понял технологию - Planet.osm обрезается до нужных размеров by osmosis,
после чего конвертируется by mkgmap либо в готовую img-овую карту в прибор, либо в набор для MapSource.
А вот как конкретно это делается - вопрос (какие обязательные параметры должен содержать bat файл? Все описанные в Руководстве? Или есть какие то установки default, а остальное - улучшательство?)
Отдельный разговор - TYP. Есть какой-нибудь Стандарт для OSM? Или у каждого автора свой?
Поэтому вопрос: не смог бы кто из OSM-гуру (людей умеющих делать вышеописанное) ответить, правилен ли этот путь, или подсказать, что должен содержать (создать образец) bat-файла, например, для острова Валаам (Ладожское озеро) или острова Сингапур (Южно-Китайское море) с пояснением, что есть что и зачем для разных видов карт (авто, вело, универсал).
Спасибо.
Файл 63240001.img получился. Хоть какие то подвижки. “О Великий Larry0ua”
Остается разобраться, что делали и что получилось.
Делали: запустили mkgmap (параметры по умолчанию), увеличили размер памяти виртуальной машины до 1GB, получили на выходе файл. Тут ПОКА все понятно
Что получили? Файл-карту Амурской области (Файл открывается в GPSMapEdit, на его базе можно создать контейнер - но в нем отсутствует routing).
Это ведь не контейнер для установки в навигатор? Почему Вы пишете “…заливаем в навигатор и “наслаждаемся” дефолтным стилем…”?
Спасибо.
Мой Garmin Dakota 20, если ему этот файл положить в папку Garmin самого навигатора, воспримет как еще одну добавленную карту (поэтому не использую MapSource)
Продолжаем туториал.
Бывают довольно большие osm-файлы, mkgmap на них будет ругаться, с сообщением:
There is not enough room in a single garmin map for all the input data
The .osm file should be split into smaller pieces first.
Получаем на выходе 63240001 - 63240004.osm.pbf, areas.list, template.args - их надо переместить в папку mkgmap-а
Запускаем mkgmap: java -Xmx1G -jar mkgmap.jar --gmapsupp --route --generate-sea --code-page=1251 -c template.args
Тут мы просим mkgmap собрать за нас все полученные файлы в один контейнер (остальные файлы все равно останутся, но нам будет нужен только gmapsupp.img), собрать карту с рутингом и морем, исправляем проблемы с кодировкой (если были, конечно), и используем файлы, нарезанные splitter-ом.
Можно в свою, потом файлы переносить. Вообще-то можно использовать разные папки для исходного файла, промежуточных порезанных и результата, но так проще объяснять
Разрезать скачанный pbf с помощью splitter-а, на выходе получить 632400xx.osm.pbf, template.args, areas.list
Скопировать stranger.typ из папки mkgmap\stranger в mkgmap (возможно, эту проблему уже давно исправили, нет возможности проверить, соберется ли все без этого шага)
В папке mkgmap создать файл stranger.cfg со следующим содержимым:
Очевидно, заменить d:\img и d:\split на нужные папки - первая - папка результата, вторая - папка с результатом split-а
7. Запустить mkgmap: java -Xmx1300M -jar mkgmap.jar --read-config=ukrstranger.cfg stranger.typ
8. Получить gmapsupp.img в папке результата.
шаги 1-2,5-6 очевидно, не надо повторять перед сборкой каждой карты.
family-id=43 привязан к такому же значению внутри TYP-файла, карта не подхватит стиль, если значения будут отличаться.
На счет вопросов распостранения карт, сгенерированных с этим стилем - обязательно консультируйтесь с автором.
Затем: java -Xmx1300M -jar splitter.jar BY-130102.osm.pbf. Получаю в итоге 5 файлов: 64630001.osm.pbf, 64630002.osm.pbf и т.д.
С каждым из 5-ти файлов проводим эту процедуру: java -Xmx1300M -jar mkgmap.jar -c configmap.conf 64630001.osm.pbf. Получаю в итоге 5 файлов 64630001-64630005.img.
Загружаю эти файлы в прибор Garmin Nuvi 1410. Прибор карту видит в меню “ОБЗОР КАРТЫ”. При выборе “КУДА?” - “АДРЕС” пишет, что нет доступных карт. При поиске через меню “ГОРОДА” видит только в радиусе 10-15 км от точки нахождения и маршрут к ним прокладывает.
Собственно вопрос: почему не поиска по адресу и не видит карту.
P.s. есть сайт http://garmin.openstreetmap.nl/, там карта создается сразу (страну только выбрать), но язык карты буржуйский и пользоваться поиском очень плохо.
Скорее всего навигатор работает только с каким-то одним файлом из пяти.
Но splitter кроме pbf-файлов создаёт также template.args, который можно указать в качестве исходного для mkgmap. При этом можно сразу же объединить 5 полученных img-файлов. Для этого, соответственно, нужно добавить параметры --gmapsupp (для объединения кусков в один файл) и -c template.args (вместо -c configmap.conf 64630001.osm.pbf), в прибор нужно будет загрузить только gmapsupp.img
В последних версиях mkgmap появился адресный поиск по номерам домов в выходном файле .img
Только не торопитесь обновляться. Также в последних версиях похерили индекс в кодировках, отличных от CP-1252, и он не работает во всех версиях которые сейчас на сайте разработчиков. Так что опробовать можно, только если собирать карту в транслите с этой кодировкой. Сообщение разработчикам уже послал.
Для включения поиска служит опция --housenumbers. Сам поиск по номерам домов работает несколько необычно: итоговая точка поиска указывет не на дом, а на пространство между домом и улицей, к которой относится дом.
Larry0ua, не могли бы вы актуализировать свой пост #308?
Получилось найти и скачать стиль с github.
Файлы границ - нет.
И .cfg сейчас, видимо, иначе выглядеть должен.
Заранее премного благодарен.
Так, я бы, честно говоря, не заметил, что меня тут упомянули
cfg как сейчас выглядеть должен, я не уверен, свою сборку я передал на поддержку другим участникам проекта, но вроде как там не было каких-то глобальных изменений.
Larry0ua, спасибо за ссылку, пригодилось. Картинку получил, но есть нюансы.
Работает поиск по адресам, по имени, по категориям. Маршруты строятся. Но возникла проблема с подписями объектов (точечных и площадных). Не все названия показываются даже при наведении курсора. Например, озёра, населённые пункты, разные категории магазинов, школы, детсады. При этом, те же банки и банкоматы подписываются, кафе и рестораны, улицы - тоже.
В проблемных объектах обычно показывается тип (магазин, школа и т. д.) или просто надпись «безымянный». Всплывает название также у объектов, только что выбранных из результатов поиска.
Сопоставлял, так сказать, с эталоном (оригинальной сборкой, скачанной на сайте чепецк.net) - там всё нормально.
cfg выглядит так:
Замечу, что без name-tag-list=name,name:ru,name:be,int_name и lower-case ничего не менялось. Явно проблема со стилем, но что и как там править? Эх, автора бы сюда
Здравствуйте! Собрал mp-файл в Global Mapper’е, пытаюсь теперь его загнать в img этой прогой (mkgmap). Стоит xubuntu 16.04. На мои многочисленные попытки попытки прога выдаёт лишь кучу java-error’ов
SEVERE (PolishMapDataSource): /files/documents/ГИС/Garmin/osmexp.mp: error decoding label
java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:281)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:816)
at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.recode(PolishMapDataSource.java:586)
at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.isCommonValue(PolishMapDataSource.java:486)
at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.processLine(PolishMapDataSource.java:323)
at uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource.load(PolishMapDataSource.java:142)
at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:154)
at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:52)
at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:255)
at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:251)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
В mp стоит Codepage=1252 по дефолту, пробовал: менять 1251 на 1252 и в команде и в файле, также пробовал методику с закомменчиванием Codepage’а и перекодировкой в utf-8. Не помогло. Что можно сделать, чтобы всё заработало? Так же пробовал загнать в img cgpsmapper’ом, там ошибок не вылетело, но в навигаторе (Garmin ETrex 30) русские названия отображались некорректно (типа Òèï êîìïüþòåðà).