Mkgmap

Удивительно, у нас нет темы про эту софтину. Надо исправить.

Mkgmap - программа для конвертирования *.mp и *.osm файлов в формат *.img, для использования в гарминовских навигаторах. Подробнее про неё можно прочитать в вики.

Первоначально я смотрел на неё как на альтернативу cgpsmapper’у для компиляции mp->img. Однако заставить её обрабатывать mp-файлы после osm2mp мне так и не удалось. То есть, карта, конечно, компилится, но все русскоязычные имена превращаются в совершенную кашу. Танцы вокруг различных параметров ни к чему не привели.

Ладно, пробую напрямую из osm. Карта получается по умолчанию с кривоватым видом, а также с именами, заботливо переведенными в транслит. Буржуи :slight_smile: Русские имена, хоть и в заглавном виде, но всё-таки удается оставить. А чтобы привести всё к более-менее вменяемому виду, нужно сидеть и ковырять стили, которые по описаниям несколько слабее по функционалу, чем конфиги в osm2mp. Не сказать, чтобы сильно, но заметно.

Казалось бы, зачем вообще возиться с этой программулиной? Однако, такое дело - компилирует она в десятки раз быстрее. Файл Московской области, обрабатываемый два-три десятка минут с помощью osm2mp, потом компиляция cgpsmapper’ом в течение сорока минут… А Mkgmap создаёт результирующий файл за полторы минуты на всё про всё. Скорость работы просто потрясающая!

Конечно, есть и проблемы, наиболее заметной из которых, на мой взгляд, является дальний роутинг. В какой конкретно момент обычный роутинг переходит в дальний, я честно говоря, не понял - возможно, кто-нибудь, сталкивавшийся с этим, расскажет. Ну и если кто-то уже разобрался с премудростью настройки стилей, сочтите за труд, опишите процесс настройки.

Я только её и использую для конвертации - никаких проблем ни с русскими названиями, ни с роутингом. И честно говоря, давно хочу спросить, что собственно обсуждается в теме “Карты OSM для Garmin”, но стесняюсь.

У меня гармин 76Cx не русифицированный, портить iso8859-1 таблицы не хочу, а поддержку utf8 в
прошивке пока никто не осилил (хотя тайваньская прошивка как-то поддерживает их варварские иероглифы).
Так что транслит для меня-как раз самое то.

Комментарий просто убил :-))
Обсуждается конвертирование в гарминовский формат, но с помощью osm2mp и cgpsmapper за исторически сложившимся отсутствием конкурентов. Вот даже сейчас Mkgmap по функциям несколько не дотягивает.

Дмитрий, а стили долго под себя затачивали? Меня сейчас вот именно этот момент очень интересует - можно ли сделать карту, приближенную по удобству к Лёшиной, но средствами этой программулины? Если не сложно, выложите примеры.

Это же windows-only проприетарщина или нет?

Ничего я не затачивал. Это всё:

    mkgmap  --gmapsupp \
        --country-name=RUSSIA \
        --country-abbr=RUS \
        --charset=windows-1251 \
        --code-page=1251 \
        --draw-priority=40 \
        --lower-case \
        --route --drive-on-right \
        *.osm

cgpsmapper, компилятор mp->img - да, именно так. Хотя и есть бесплатная полнофункциональная версия. А osm2mp - кроссплатформенный перловый скрипт, совершенно свободный. Вот.

Досадно. С настройками по умолчанию куча интересных объектов не вытаскивается.

gps-Max
Поглядел я mkgmap по Вашей рекомендации. У меня не получается на ней роутинг вообще никак, зато по русски все названия пишет.
Я, правда, в отличии от AMDmi3 использую внешний optionsfile.args файл.


charset: windows-1251 
code-page: 1251 

Вот эти строки (как мне кажется) и делают названия русскими.
Ну и батник для запуска:


java -ea -jar mkgmap.jar -c optionsfile.args data.osm

Правда забыл сказать, что полученную карту конверчу в формат *.rus при помощи GME.
Может тут как раз роутинг и теряется? Подскажите есть ли выход?
Скорость работы у mkgmap очень высокая, подтверждаю.

Ага, любая из этих строк или обе сразу. Также ещё проходит charset=cp1251 - насколько можно понять, различий в этих трёх вариантах нет, карты генерятся ровно те же.

Про роутинг мне самому очень интересно узнать.

А с osm2mp → rus роутинг остаётся?

gps-Max
Я пишу обе строчки, и все в порядке.
Сейчас шаманил с роутингом, получилось так.
Добавил в опции:


tdbfile (просто как есть , только одно слово)
overview-mapname: (сюда пишу тоже что и в "mapname:" , и там и там без расширения)

На выходе получаю 3 файла:

  1. Map.img
  2. Mapnull.img
  3. Mapnull.tdb
    Далее в обратном порядке гружу их в GME, в свойствах карты ставлю RUSSA, метры и все дело экспортирую в формат *.rus.
    Роутинг появился, НО, он то есть, то нет его, словом - надо увидеть самому.

А с osm2mp у меня к роутингу претензий нет, жаль я там с конфигами не дружу :).

Угу, ну так это использовать нет ни возможности, ни желания.

Это я знаю.

А есть где посмотреть скрины с одинакового куска карты, сконверченной cgpsmapper’ом и mkgmap?
Там есть какие-то стили, можно поковырять. Я бы поменял только обозначение allotments, которогое совпадает с лесом, и добавил бы какое-нидьу заметное выделение для нод с fixme=*. Остальное и так замечательно.

Проприетарщина, но не windows-only - есть под линукс.

Московскую область этот компилятор целиком не переваривает, так и запишем. Резать как-то не хочется, попробовал это место обойти и наткнулся на глюк с зависанием. Интересные дела выясняются… :slight_smile:

У меня все переваривает, равно как и в полтора раза больший .osm

Поправка - я использовал r1625. r1688 действительно падает.
Поправка2 - падает, но gmapsupp.img, тем не менее, создает.

Со стандартными настройками переваривает, но стоит поднять количество уровней, как достигается потолок. Подозреваю, что если взять территорию побольше, то упадет и на установках по умолчанию. Падая, говорит, что слишком много объектов и типа надо резать osm на части. Пока обойти не удалось.

Сделать -Xmx1024m или что-то около? У меня конвертация mosobl жрет около полугига.

Переименуйте тему, буква “p” в середине лишняя.

Опечатка, исправил. Забавно, оказывается, я название по тексту то так, то так писал. Спасибо, что заметили.