OpenStreetMap logo OpenStreetMap

Преамбула

Актуальные карты в навигаторе перед поездкой или походом — залог успеха для путешествующих людей. Но, поскольку есть ряд причин, которые могут помешать (и мешают) получить такие карты в готовом виде от обычных энтузиастов, которые по доброй воле тратят свои ресурсы (время, знания, мат. средства) на подготовку и выкладывание в свободный доступ, то считаю очень полезным умение делать это самостоятельно.

Периодически возникают ситуации, когда пропадает доступ к скачиванию файлов, останавливается налаженная автоматическая конвертация, возникают ошибки в конвертации и т. п., а также не всегда удобно и целесообразно выкачивать гигабайты (напр. все страны СНГ) и потом запихивать их в навигатор ради получения карты одной страны или региона, размер файла карты которого составляет всего десятки или сотни мегабайт. Не всегда предлагаемые карты оперативно обновляются. И, чтобы вы могли избежать всех этих неудобств, написана эта заметка-инструкция.

Примечание: автор заметки не является специалистом в данной области и всю информацию почерпнул на форуме или в справочных материалах к нижеприведённым программам, ну или разобрался по ходу процесса путём простого сопоставления. Справиться с задачей cможет любой человек, умеющий редактировать текстовые файлы и владеющий элементарной логикой.

Подготовка необходимых программ и файлов

  • Windows 7/8/10 (желательно x64) (можно и linux-систему, но там свои особенности и заметка не об этом)
  • Java (желательно именно x64 под соотв. Win, чтобы иметь возможность выделить приложению более 3Гб оперативной памяти)
  • Собственно конвертер mkgmap
  • Обработчик границ splitter
  • Сами границы в виде архивов bounds.zip и sea.zip (скачать там же), это специально подготовленные файлы для корректной обработки адресной информации и контуров морей (подробностями не владею, но, в общем, в них и нет необходимости, а почитать можно на сайте разработчиков)
  • Исходные («полусырые», т. е. уже специально обработанные) osm-данные вашего региона или страны в формате pbf можно скачать [1] или [2] (тут, к сожалению, периодически возникают технические проблемы, как на момент создания заметки, прерывающие ежедневное обновление файлов, что наводит на мысль научиться самому выполнять и данный промежуточный этап конвертации, дабы в ещё меньшей степени зависеть от сторонних сервисов) Небольшое (но важное) дополнение: знающие люди подсказали, что можно обновлять уже имеющийся (скачанный однажды) pbf-файл с помощью программы osmupdate (к ней также необходимы osmconvert и wget) Всё работает и можно получать самые свежие данные (вплоть до минутных изменений, считая от начала запуска обновления). Таким образом можно поддерживать исходный файл всегда в актуальном состоянии и не зависеть от проблем у сторонних сервисов (кроме osm.org, конечно)
  • Файлы, отвечающие за стиль (графика и текст) готовой карты. Здесь могут быть варианты, поскольку существует множество кастомных наработок. Я брал за основу стиль stranger, ветка форума от автора, и дорабатывал его под себя (добавил или поменял некоторые значки, текстуры, добавил направление водотоков, отображение подъездов с номерами квартир и т. п.), что при желании может делать каждый, немного покопавшись в исходных файлах (и в этом ему поможет утилита TYPViewer), но это отдельная тема, углубляться в которую не буду. Вот ссылка на мои исходные файлы, касаемо стиля (заодно и bat-файл, запускающий конвертацию со всеми параметрами) для примера и основы

Конвертация

Итак, всё необходимое скачано, архивы распакованы. Желательно выделить под это отдельную папку и в ней раскидать в подпапки с названиями, набранными латиницей (нето могут возникнуть проблемы, т. к. утилиты просто не умеют читать кириллицу и не смогут воспринимать пути в конфигах, выдавая ошибки вида «file not found»)

Далее надо подкорректировать в bat-файле все директории в соответствии с вашими файлами и папками, после чего запустить его. В указанной вами папке (у меня это output-dir=”%BASEDIR%\output\my Stranger”) вы получите набор файлов, из которых понадобится только gmapsupp.img Его надо просто скопировать (можно переименовать при необходимости, не меняя расширение после точки) в память навигатора или на флешку в папку Garmin.

Примечания и дополнения

Ключ –copyright-message влияет только на выводимую надпись о правах (она не обязательна, если вы делаете карты сугубо для своих нужд), то же касается и ключей –series-name, –family-name, –description, –country-name, –country-abbr. А вот –product-id и –family-id могут повлиять на совместимость с другими уже установленными картами (у меня бывало так, что совместно некоторые не хотели определяться навигатором eTrex20) Ключи –charset=cp1251 и –code-page=1251 отвечают за кодировку для шрифтов. Также обратите внимание на –name-tag-list=name,name:ru,name:be,int_name, что задаёт последовательность выборки и присваивания названий для всех объектов (если не отыскивается первое значение, то ищется следующее и т. д.)

Ещё важные моменты: для сплиттера указывается (“%BASEDIR%\pbf\belarus.osm_24.05.18.pbf”) директория исходного файла и директория для результата нарезки (–output-dir=”%BASEDIR%\input”), она же станет исходной для mkgmap.

Если добавить ключ –gmapi, то дополнительно будет создана папка «Название стиля.gmap», а в ней будут файлы, которые можно использовать в BaseCamp или Mapsource для просмотра карты на компьютере. Достаточно скопировать папку “*.gmap” по указанному ниже пути (в зависимости от ОС компьютера): для WinXP путь C:\Documents and Settings\All Users\Application Data\GARMIN\Maps для Win7/8/10 путь C:\ProgramData\Garmin\Maps или скопировать туда же ярлык на вашу папку (не важно, где она была создана), и потом выбрать из списка карт в BaseCamp вашу. Это позволит заодно и протестировать её, не загружая в навигатор.

Вообще, вместе с mkgmap есть справочные файлы (на английском), где расписаны значения ключей (doc/options.txt) и есть manual по программе.

PS

Надеюсь, данная заметка поможет читателю освоить, в общем-то, несложный процесс конвертации карт под свой любимый garmin. Ведь повозиться с наладкой/подготовкой придётся лишь единожды, а потом будет достаточно заменить исходный файл pbf на свежий и прописать его название в bat-файле. Поскольку у меня это происходит нечасто, я делаю это вручную, равно как и запуск конвертации (хотя, умельцы могут и автоматизировать все эти процессы).

Discussion

Log in to leave a comment