Как можно извлечь роутинговый граф из OSM?
Posted by Sergey Astakhov on 17 November 2012 in Russian (Русский). Last updated on 25 November 2012.Очень просто. Пример для винды:
Подготовка
- Если на компьютере нет Java - установить её
- Создать каталог C:\OSM
- Скачать osmosis-0.40.1
- Распаковать его в C:\OSM - при этом там создастся подкаталог osmosis-0.40.1
- Создать подкаталог C:\OSM\plugins
- Скачать туда плугин osmrouting-1.2.jar
-
Проверяем что всё работает запуском osmosis в каталоге C:\OSM:
C:\OSM>C:\OSM\osmosis-0.40.1\bin\osmosis.bat
17.11.2012 16:13:38 org.openstreetmap.osmosis.core.Osmosis run
INFO: Osmosis Version 0.40.1
...
17.11.2012 16:13:41 org.java.plugin.standard.StandardPluginManager activatePlugin
INFO: plug-in started - OSMRouting@1.2.0
...
Osmosis может искать свои плугины в нескольких местах. Тут перечислены места, которые можно использовать. В данном примере используется вариант каталога plugins относительно текущего каталога запуска, поэтому запускать надо именно из каталога C:\OSM, в противном случае плугин найден не будет. Если вам более удобны другие варианты размещения плугинов - вы можете настроить osmosis по своему вкусу.
Фильтрация
- Скачиваем интересующий регион в формате pbf на одном из сервисов, например на gis-lab
-
Запускаем фильтрацию дорожного графа:
C:\OSM>C:\OSM\osmosis-0.40.1\bin\osmosis.bat –read-pbf region.osm.pbf –lp –build-routing-graph graphLevel=residential minorGraphsAction=drop –write-pbf region.graph.osm.pbf
В этом примере читается содержимое файла region.osm.pbf, фильтруется дорожный граф уровня residential (graphLevel=residential), изолированные области выкидываются (minorGraphsAction=drop), а результат записывается в выходной файл region.graph.osm.pbf.
Результат можно открыть в JOSM и проверить. Только будьте осторожны - на больших регионах JOSM может тормозить и требовать много памяти.
Discussion
Comment from The Godfather on 23 November 2012 at 14:54
Просьба исправить 5-й пункт. Плагины надо класть не в папку с программой, а (в случае Win7) в “C:\Users\%USERNAME%\AppData\Roaming\Openstreetmap\Osmosis\Plugins”
Comment from Sergey Astakhov on 23 November 2012 at 16:40
А я и не писал что надо в папку с программой - osmosis ищет плугины в нескольких местах, в том числе и в подкаталоге plugins текущего каталога запуска. В примере выбран именно этот вариант как самый простой.
Тут перечислены места, которые можно использовать: http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage#Plugin_Tasks
Comment from The Godfather on 25 November 2012 at 12:06
Comment from The Godfather on 25 November 2012 at 12:09
Или даже ““C:\OSM\osmosis-0.40.1\bin"
Comment from Sergey Astakhov on 25 November 2012 at 14:32
Ошибки в тексте нету. Вот специально же написано, что запускать надо из C:\OSM, даже в примерах преднамеряно оставил приглашение, чтобы было виднее, и всё равно кто-то понял неправильно. Я не знаю как написать понятнее - написать большими красными буквами?. Или расписать весь алгоритм поиска плугинов osmosis-ом? Боюсь, тогда это не будет простой инструкцией… :)
Comment from Sergey Astakhov on 25 November 2012 at 21:03
Добавил комментарий про текущий каталог. Надеюсь, так будет понятнее.