RU:Mkgmap

From OpenStreetMap Wiki
Jump to navigation Jump to search

an unequal sign

Эта статья отмечена как русскоязычная версия статьи на другом языке, но отличается от неё по содержанию (обычно основная статья на английском или немецком языках). Пожалуйста, обновите перевод если считаете возможным.
Mkgmap4.png
Mkgmap-screenshot-6.png
Mkgmap-screenshot-9.png
Warnemünde.png

Эта программа конвертирует картографические данные 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 на несколько небольших файлов. Это можно сделать примерно вот таки образом:

  • Возьмите splitter по этому адесу [1].
  • Разделите исходный файл:
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
  • Также доступен архив списка рассылки.

Список рассылки активно используется и скорейший ответ можно получить именно там.

Альтернативы:

Ссылки