RU:Mkgmap
Эта программа конвертирует картографические данные OpenStreetMap в формат карт для загрузки в устройства Garmin GPS. Конвертирование производится в один шаг и не требует каких либо дополнительных программ.
Целью этого проекта является возможность конвертации данных проекта OpenStreetMap для моего Garmin Legend Cx чтобы было возможно наглядно видеть что на карте сделано, а что ещё нет. Плюс просто интересно видеть на карте чтоже мы наделали.
Связаться с проектом по поводу ошибок, предложений или если вам нужна помощь вы можете обратиться на эту страницу, или обсудить вопросы здесь.
Скачивание
Скачивание программы доступно в виде zip файлов (которые более удобны для Windows окружения), а также как сжатые tar архивы. Содержимое архивов является индентичным.
- Скачать
- Доступные версии и исходные коды Snapshots
- Ночная сборка: mkgmap-latest.tar.gz (всё самое свежее, но могут быть проблемы)
Программа требует Java 1.6. Последний релиз который работал с Java 1.5 - r1195. Если в вашей системе ещё не установлена java то установите её.
- Ubuntu
В версии Jaunty mkgmap доступен прямо из репозитория программ Ubuntu. Для установки просто запустите в командной строке следующее. sudo aptitude install mkgmap
После этого программа может быть запущена прямо в терминале командой mkgmap.
Создание карт
- Создайте файл содержащий данные OSM. Напимер можно сохранить файл из JOSM. Файл можно назвать как угодно — я в данном примере называю его data.osm. Можно также скачать карту большего размера, используя XAPI так (в следующем примере мы получаем Новосибирск с окрестностями):
wget http://xapi.openstreetmap.org/api/0.6/map?bbox=82.33,54.56,83.38,55.3 -O data.osm
or
curl -L "http://www.informationfreeway.org/api/0.6/map?bbox=82.33,54.56,83.38,55.3" -o data.osm
- Для создания файла Garmin карты; откройте командную строку и перейдите в вашу Mkgmap папку. Потом запустите следующую команду:
java -jar mkgmap.jar [options] data.osm
- Получится файл 63240001.img
При обработке карты большого размера, вполне возможно что программа завершится с ошибкой, выдав такой текст: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space. Для устранения проблямы просто необходимо увеличить количество доступной памяти для работы программы. Это можно сделать примерно вот так:
java -Xmx512M -jar mkgmap.jar [options] data.osm
такая команда позволит выделить для работы программы до 512Mb физической памяти.
Опции командной строки
Работая с большими картами, возможно понадобится изменить некоторые детали стандартной карты. Вы можете задавать некоторые параметры. Если вам нужно указывать несколько параметров сразу, будет проще записать их в текстовый файл и подключать его параметром -c. For a complete list see the complete option list.
Использование: mkgmap [options...] <file.osm> Опции:
- --help=раздел
Печать помощи по разделам. Если раздел не определён, то будет распечатан список всех разделов помощи.
- -c filename
Определить конфигурационный файл с команднострочными опциями. В файле каждая строка используется для определения опций по форме опция=значение, точно также как и в комендной строке, но без ;--.
- -n name
- --mapname=name
Определить имя карты. Garmin карты именуются 8 значными номерными значениями. По-умолчанию - 63240001. Лучше это значение поменять. И если карты будут использоваться широко, то продумайте исстему нумерации, чтобы избежать конфликта имен при использовании.
- NOTE: вводите только имя без расширения ".img", иначе программа завершиться с ошибкой ;--
- --description=text
Текстовое описание карты. Это будет отображено QLandkarte, MapSource on on a GPS etc.
- --country-name
Установить наименование страны. По-умолчанию "UNITED KINGDOM".
- --country-abbr
Установить аббревиатуру наименования страны. По-умолчанию "GBR".
- --region-name
Установить наименование региона. По-умолчанию наименование региона не определено.
- --region-abbr
Установить аббревиатуру наименования региона. По-умолчанию аббревиатура не определена.
Опции для меток:
- --latin1
Эта опция позволяет использовать non-ascii символя в названиях улиц. Фактическая поддержка зависит от аппаратной платформы. Многие устройства поддерживают только ASCII символы.
Mkgmap goes to some length to convert un-displayable characters, though, and by default (without this option), it will transliterate characters to unaccented ASCII characters where possible.
- --charset=name
Использовать набор символов.
- --code-page=number
Использовать кодовую страницу.
- --lower-case
Разрешить метки со строчными буквами. Это может не работать на некоторых (болшинстве, всех?) устройствах Garmin.
Опции стиля:
Также посмотрите документацию по пользовательским стилям.
- --style=name
Определить стиль отличный от стиля по-умолчанию.
- --style-file=file
Указать внешний файл, откуда взять стиль. Файл может быть папкой или архивом zip, содержащим стиль. Также можно указать www-ссылку. Если в архиве больше одного файла, то можно использовать параметр ;--style, чтобы выбрать нужный стиль.
For backward compatibility, you can also supply a map-features.csv file here. See the customization help.
- --list-styles
Список доступных стилей.
- --levels=levels code
Change the way that the levels on the map correspond to the zoom levels in the device. See customization help. The default is the equivalent of "0=24, 1=22, 2=21, 3=19, 4=18, 5=16", although this may change.
- --name-tag-list
Specify the tag that will be used to supply the name. Useful for language variations. You can supply a list and the first one found will be used (e.g. ;--name-tag-list=name:en,int_name,name)
- --map-features=file
Outdated option. Use the ;--style-file option instead.
Product description options:
- --family-id
This is an integer that identifies a family of products.
- --product-id
This is an integer that identifies a product within a family. It is often just 1.
- --series-name
- --family-name
- --area-name
- --overview-mapname
Misc options:
- --block-size=number
Changes the block size that is used in the generated map. There is no general reason why you would want to do this.
- --net
Create output file that supports "lock to road" option.
- --gmapsupp
Write a gmapsupp.img file, possibly joining previous gmapsupp.img (you need to copy in the Mkgmap's working directory), that can be uploaded to a Garmin device in USB mode. java -jar mkgmap.jar --gmapsupp corsica.img cyprus.img mallorca.img malta.img tenerife.img
- --ignore-osm-bounds
When reading OSM files, ignore any "bounds" elements.
- --road-name-pois[=GarminCode]
Generate a POI for each named road. By default, the POIs' Garmin type code is 0x640a. If desired, a different type code can be specified with this option.
- --tdbfile
Write a .tdb file.
- --index
Write MDR and MDX index files.
- --nsis
Write a .nsi file for use with NSIS to generate an executable to install the map in MapSource on Windows.
- --draw-priority=25
When two maps cover the same area, this option controls what order they are drawn in and therefore which map is on top of which. Higher priorities are drawn "on top" of lower priorities.
- --transparent
Make the map transparent, so that if two maps are loaded that cover the same area, you can see through this map and see the lower map too. Useful for contour line maps among other things.
- --version
Output program version.
- --verbose
- --max-jobs
Installing
- Load this onto your Garmin GPS device. Garmin models such as the Legend Cx can be set into USB mass storage mode, where they appear as just another drive letter (on Windows) or filesystem (on Unix/Linux type systems). In this case you can just copy the map to the file Garmin/gmapsupp.img. Create the folder Garmin if it does not already exist.
- User:Tms13: If your GPS uses removable memory cards, it may be quicker to remove the card and write to it in a card reader - most Garmin units are USB 1.1; a USB 2.0 card reader will write at least 5 times faster, in my experience.
- If you have an older serial connecting and map displaying Garmin device you can upload the .img file to your Garmin unit using Sendmap.
- You can also combine two or more maps to one map with Sendmap or gmaptool.
- The QLandkarte program can be used to upload to the GPSmap 60CSx and the latest version also works to my Legend Cx.
Извесные проблемы
В настоящее время есть следующие проблемы.
Поиск по улицам
Сейчас мы не знаем как сделать карту по которой используя встроенные средства Garmin может вестись поиск по наименованиям улиц. Можно сделать карту в которой к каждой улице привязан POI (смотрите станице обсуждений).
Береговая линия
Береговая линия отображается, но на самом деле она не является морскими полигонами The coastline is shown, but really there should be sea polygons instead. Опиция --generate-sea может быть использована для генерации морских полигонов, но опция находится в стадии "beta" тестирования.
Обработка очень больших карт
Если вы пытаетесь обработать используя mkgmap очень большую карту, то mkgmap не сможет её обработать. Для успешной обработки вам необходимо разделить исходные данные файла OSM на несколько небольших файлов. Это можно сделать примерно вот таки образом:
java -Xmx1000m -jar splitter.jar file.osm
- Запустите mkgmap по всем полученным в результате файлам
java -Xmx1000m -jar mkgmap.jar -c template.args
Разработка
Доступна вики страница для разрабоки программы, mainly based around OSM usage.
There is also an external mgkmap home page.
Лицензия
Программа лицензирована на условиях GPL версии 2. Сконвертированные карты должные быть лицензированы на тех же условиях, что и исходные данные для OSM карт это Creative Commons CC-BY-SA 2.0. There is therefore no licensing conflict that might exist with other approaches.
Графический интерфейс
Сейчас есть четыре различных графических интерфейса для mkgmap, так что пользователи не изучая параметры командной строки могут воспользоваться следующими альтернативными вариантами:
- OSM Composer - графический интерфейс поверх mkgmap, для упрощения процесса создания Garmin карт на основе данных OSM и SRTM.
- MkgmapGUI от freegeographytools - только для Windows, исходные коды не доступны, конвертация доступна только из osm в img
- Mkgmapgui от activityworkshop - Java, открыты исходные коды, предоставляет базовые функции по преобразованию и объединению файлов img
- DoMyMaps - according to User:Lao this has been recently suspended
Скрипты
Для пользователей Unix: Python Script.
Для пользователей Windows: A Batch HowTo.
Справочная информация
Если вы нуждаетесь в помощи то попробуйте обратиться:
- Задавайте ваши вопросы в списке рассылки. Для доступа воспользуйтесь любой программой для чтения новостных групп (например Thunderbird) используя следующие параметры:
- Сервер: news.gmane.org
- Наименование группы: gmane.comp.gis.openstreetmap.mkgmap.devel
- Также доступен архив списка рассылки.
Список рассылки активно используется и скорейший ответ можно получить именно там.
Альтернативы:
- Задавайте вопросы форуме OSM в секции Garmin карт
- Задавайте вопросы на станице общения
Ссылки
- http://www.parabola.me.uk/mkgmap/ - Новости и станица для скачивания
- mkgmap/dev - Страница для разработчиков mkgmap
- mkgmap/routing - Генеация карт с поддержкой маршрутизации
- OSM Map On Garmin - Общее описание по созданию карт для устройств Garmin.
- OSM_Map_On_Garmin/POI_Types - Список различных типов POI и как они будут выглядеть на различных устройствах
- OSM Map On Garmin/Download - Готовые img файлы для Garmin на основе данных OSM.
- Image:Putney-on-gps.jpg - A map of Putney on a Venture Cx, created by User:Gravitystorm
- Image:Qlandkarte sueddeutschland.png - A map of Southern Germany viewed with QLandkarte
- mkgmap/i18n - Станица интернационализации и переводов.
- User:Computerteddy - The World ready to use with Garmin GPS, made with mkgmap from (mostly in German Language)
- OSM Map On Garmin/Cycle map - Создание велосипедных карт с mkgmap.