10:53 pm: OpenStreetMap + Garmin
Получить карты проекта OpenStreetMap можно прямо с сайта
http://www.openstreetmap.org/, экспортируя данные (что неудобно, выгрузить позволяется участок с количеством деталей не более 50000 штук, что в среднем даёт не более 50*50 километров) или с помощью приложений, разработанных для работы с этим проектом.
Удобнее всего мне показалось делать это в редакторе карт OpenStreetMap - Merkaartor. Можно подгрузить необходимые данные кусками, просматривая интересующие территории, и экспортировать все данные одним файлом OSM. Примерно так:
"File" -> "Download" (или кнопка "Download" на панели инструментов). Выбираем регион для начала выборки данных:
Merkaartor. Select area: #0
Если количество запрашиваемых данных не превышает лимита, то начнётся процесс их скачивания:
Merkaartor. Download data: #1
После загрузки и применения данных получаем примерно следующее:
Merkaartor. First step view: #2
Теперь смещаемся, с помощью клавиатуры управления курсором, на границу интересующего нас региона и дозапрашиваем данные с помощью опции "File" -> "Download more" (или кнопки "Download more" на панели инструментов):
Merkaartor. Select area for download more: #3
В итоге, побродив по карте и поклацав на кнопку догрузки данных, получаем выборку свежих карт региона:
Merkaartor. Final step view: #4
С помощью опции "File" -> "Export" -> "OSM (XML)" выгружаем данные в единый файл XML для последующей обработки.
Для принятия навигатором Garmin полученных ".osm" карт следует их конвертировать в специальный формат ".img".
В Debian Squeeze есть пакет, содержащий приложение на Java, разработанное для такой конвертации:
$aptitude show mkgmap
...
Maintainer: Debian GIS Project <pkg-grass-devel@lists.alioth.debian.o
rg>
Depends: openjdk-6-jre-headless | java5-runtime-headless
Description: Generate Garmin maps from OpenStreetMap data - This program converts OpenStreetMap data into a map that can be loaded onto compatible Garmin GPS units.
Homepage:
http://www.mkgmap.org.ukВидно, что пакет нуждается только в Java-машине. Устанавливаем приложение:
#aptitude install mkgmap
Подготовим место для работы:
$mkdir -p ~/mkgmap/osm
$mkdir -p ~/mkgmap/img
Подготовим конфигурационный файл, наполненный нужными нам опциями:
$touch ~/.mkgmap.conf
$cat ~/.mkgmap.conf
mapname=11031101
family-name=OpenStreetMap
description=Pavlodar.201103011
country-name=KAZAHSTAN
country-abbr=KZ
region-name=PAVLODAR
region-abbr=PVL
draw-priority=50
transparent
latin1
lower-case
ignore-osm-bounds
route
make-poi-index
Где (значения параметров должны быть без кавычек, как ни забавно):
Если навигатор русифицирован - можно добавить в конфигурационный файл опции явного указания кодировки и языка обрабатываемых файлов:
$cat ~/.mkgmap.conf
....
latin1
charset=cp1251
code-page=1251
....
Где:
Теперь изготавливаем контейнер из карт (можно из нескольких) в формате OSM (имя результирующего файла не указываем, так как оно предустановленное и неизменное - gmapsupp.img):
$cd ~/mkgmap/img
$mkgmap -c ~/.mkgmap.conf --gmapsupp ~/mkgmap/osm/*.osm
После того, как утилита отработает, в директории "~/mkgmap/img" появится несколько файлов ".img", как минимум по одному на каждую обрабатываемую карту и результирующий gmapsupp.img, представляющий из себя контейнер со всеми отрабатываемыми здесь картами.
Контейнер загружаем в навигатор способом указанным предыдущих постах.
Приятно так же то, что Merkaartor является кроссплатформенным продуктом и работает под Windows, Linux и Mac OS
Tags: garmin,
gps,
openstreetmap