Конвертирование OSM в MAP используя mapsforge-map-writer плагин для Osmosis под Linux.

В этой статье описаны пошаговые действия по компилированию плагина mapsforge-map-writer для дальнейшего использования в Osmosis.

1. Подготовительные работы

1.1. Подготавливаем Osmosis

Качаем последнюю версию Osmosis(Linux), у меня это 0.43.1:

wget http://bretth.dev.openstreetmap.org/osmosis-build/osmosis-latest.tgz
tar xvfz osmosis-latest.tgz
cd osmosis-*
chmod a+x bin/osmosis
bin/osmosis

Или качаем вручную отсюда: http://bretth.dev.openstreetmap.org/osmosis-build/

Скачанный архив распаковываем в папку Osmosis, таким образом у меня получается следующая структура папок:

Osmosis\
    ├ bin
    ├ config
    └ lib

Теперь идём в папку «Osmosis/bin» и редактируем файл «osmosis». Добавляем в начало этого файла строчку «JAVACMD_OPTIONS=-Xmx2G» в которой указываем кол-во оперативки доступное для Java. Таким образом, первая часть файла у меня выглядит так:

#!/bin/sh

# Config files can define several variables used throughout this script.
# JAVACMD - The java command to launch osmosis.
# JAVACMD_OPTIONS - The options to append to the java command, typically used to modify jvm settings such as max memory.
# OSMOSIS_OPTIONS - The options to apply to all osmosis invocations, typically used to add plugins or make quiet operation the default.

JAVACMD_OPTIONS=-Xmx2G

if [ -f /etc/osmosis ] ; then
  . /etc/osmosis
fi

if [ -f "$HOME/.osmosis" ] ; then
  . "$HOME/.osmosis"
fi

...

Далее в папке «Osmosis/config» модифицируем «plexus.conf» добавляем туда нашу папку плагинов, таким образом, содержимое моего конфиг файла выглядит так:

main is org.openstreetmap.osmosis.core.Osmosis from osmosis.core

[osmosis.core]
load ${app.home}/lib/default/*.jar
load ${app.home}/lib/custom/*.jar
load ${app.home}/config

1.2. Компилирование плагина mapsforge-map-writer

Качаем IntelliJ IDEA. На данный момент я использую 13 версию.

Качаем исходники mapsforge https://code.google.com/p/mapsforge/source/checkout. Я использую rewrite ветку репозитоия mapsforge с последним коммитом 67db7798058361e9d78bbf7aabb499f01a2b2df1

Открываем в IntelliJ IDEA папку исходников проекта mapsforge как проект, т.к. там есть конфигурационный файл Maven’а.
Идём в настройки проекта(«Project structure») и в разделе «Artifacts» создаём артефакт с именем mapsforge-map-writer и добавляем в него:

  • mapsforge-core
  • mapsforge-map-writer

Затем билдим этот артефакт. Если посыпались ошибки связанные с отсутствием Android SDK, идём в настройки проекта(«Project structure») и в разделе «Facets» удаляем Android.
После чего, закидываем выходной jar файл(«mapsforge-map-writer.jar») в папку «Osmosis/lib/custom», туда же закидываем jar файлы зависимостей:

  • guava-14.0.1.jar
  • jts-1.13.jar
  • trove4j-3.0.3.jar

2. Запуск конвертирования в Osmosis

Заходим в папку куда распаковали Osmosis и выполняем следующую команду:

./bin/osmosis -plugin org.mapsforge.map.writer.osmosis.MapFileWriterPluginLoader --rx enableDateParsing=no file="/home/hronom/maps/osm/planet_26.35,44.87_37.44,50.17.osm" --mw type=hd file="/home/hronom/maps/map/test.map"

Внимание!!! Все папки в пути должны быть созданы иначе вылетит с ошибкой.

Команды Osmosis можно посмотреть тут: http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage
Команды mapsforge-map-writer можно посмотреть тут: https://code.google.com/p/mapsforge/wiki/GettingStartedMapWriter

OSM файлы можно скачать отсюда: http://planet.openstreetmap.org/
Или отсюда: http://wiki.openstreetmap.org/wiki/Planet.osm#Processing_the_File
Онлайн экстракт данных: http://extract.bbbike.org/

Заключение

Ваши замечания/пожелания приветствуются, так, что пишите=)

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s