OpenStreetMap

Как можно извлечь роутинговый граф из OSM?

Posted by Sergey Astakhov on 17 November 2012 in Russian (Русский)

Очень просто. Пример для винды:

Подготовка

  1. Если на компьютере нет Java - установить её
  2. Создать каталог C:\OSM
  3. Скачать osmosis-0.40.1
  4. Распаковать его в C:\OSM - при этом там создастся подкаталог osmosis-0.40.1
  5. Создать подкаталог C:\OSM\plugins
  6. Скачать туда плугин osmrouting-1.2.jar
  7. Проверяем что всё работает запуском 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 по своему вкусу.

Фильтрация

  1. Скачиваем интересующий регион в формате pbf на одном из сервисов, например на gis-lab
  2. Запускаем фильтрацию дорожного графа:

    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 может тормозить и требовать много памяти.

Comment from The Godfather on 23 November 2012 at 14:54

Просьба исправить 5-й пункт. Плагины надо класть не в папку с программой, а (в случае Win7) в "C:\Users\%USERNAME%\AppData\Roaming\Openstreetmap\Osmosis\Plugins"

Hide this comment

Comment from Sergey Astakhov on 23 November 2012 at 16:40

А я и не писал что надо в папку с программой - osmosis ищет плугины в нескольких местах, в том числе и в подкаталоге plugins текущего каталога запуска. В примере выбран именно этот вариант как самый простой.

Тут перечислены места, которые можно использовать: http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage#Plugin_Tasks

Hide this comment

Comment from The Godfather on 25 November 2012 at 12:06

в том числе и в подкаталоге plugins текущего каталога запуска Текущего! А вы предлагаете куда класть? "C:\OSM\plugins", цитирую. Когда каталог запуска - "C:\OSM\bin\". Я долго не мог понять, почему у меня не работает, хотя все сделано по инструкции. А оказалось, что у вас ошибка.

Hide this comment

Comment from The Godfather on 25 November 2012 at 12:09

Или даже ""C:\OSM\osmosis-0.40.1\bin\"

Hide this comment

Comment from Sergey Astakhov on 25 November 2012 at 14:32

Ошибки в тексте нету. Вот специально же написано, что запускать надо из C:\OSM, даже в примерах преднамеряно оставил приглашение, чтобы было виднее, и всё равно кто-то понял неправильно. Я не знаю как написать понятнее - написать большими красными буквами?. Или расписать весь алгоритм поиска плугинов osmosis-ом? Боюсь, тогда это не будет простой инструкцией... :)

Hide this comment

Comment from Sergey Astakhov on 25 November 2012 at 21:03

Добавил комментарий про текущий каталог. Надеюсь, так будет понятнее.

Hide this comment

Leave a comment

Parsed with Markdown

  • Headings

    # Heading
    ## Subheading

  • Unordered list

    * First item
    * Second item

  • Ordered list

    1. First item
    2. Second item

  • Link

    [Text](URL)
  • Image

    ![Alt text](URL)

Login to leave a comment