Graphhopper

23 июля 2013, 13:46

OSRM перестал быть единственным презентабельным движком построения маршрутов по OpenStreetMap. Вчера выпустили первую публичную версию Graphhopper: java-библиотеки, способной работать не только под Apache Tomcat и в составе офлайновых java-приложений, но и под Android. В отличие от OSRM, для Graphhopper крайне важна экономия памяти, поэтому ей хватает 32 мегабайт на роутинг по Германии.

Сайт Graphhopper строит маршруты для машин, велосипедов и пешеходов по всей планете. Тестовый маршрут Глазго — Магадан посчитался за полторы секунды, пешеходный маршрут на полторы тысячи километров короче автомобильного и включает множество паромов, отмеченных route=ferry, foot=yes. Один лишь недочёт: маршрут не скачать.

Полумеры       Ctrl       Бруклин Локал

13 комментариев

akks #

Он же GraphHopper :)
Сайт, надеюсь, дотянут со временем...

Илья Зверев

И это первый раз, когда я обратил на это внимание :) Спасибо, поправил везде.

Peter #

Peter from GraphHopper here. Thanks for mentioning the release. Regarding the missing save option: feel free to contribute ;) or create an issue maybe someone (including me) needs the feature and is willing to spend some time on it.

BTW: In the URL it is still grasshopper :)

SviMik #

Не работает в Opera 9.62 и IE 8.

Зато OSRM работает во всех браузерах, большой респект за кроссбраузерность :)

Sergey Astakhov #

Ещё один роутер, который не поддерживает way в via у restriction-ов. :)

Sergey Astakhov #

Или он вообще restriction-ы не обрабатывает?

dkiselev #

Вроде бы поддержки рестрикшенов нет. Но добавить на первый взгляд не сложно.

dkiselev #

Еще, судя по
public interface RoutingAlgorithm
....
Path calcPath( int from, int to );

Пока поддерживаются только алгоритмы возвращающие 1 путь.

Виктор #

хватает 32 мегабайт на роутинг по Германии

Что-то на сайте выглядит слишком быстро для 32мб RAM, не верится для точного роутинга :) Для 32мб все-таки надо загружать и выгружать достаточно прилично, особенно для любого(!) маршрута через всю Германию, тем более он на java написан.

В любом случае, у них есть backend для OsmAnd. Единственное, что не договорились о передачи информации о дорогах, в смысле маршрут без полос и т. п. Но пойду потесриую

Но честно говоря, чудес не жду :)

unxed #

Предлагает поворачивать на Невский с Литейного :(

Виктор #

Потестировал, даже впечатлен. На Android маршруты 500 км считает до 5 секунд (не Германия, а Польша), что конечно очень хороший результат, особенно для plain Java с ограничениями 30Мб. С другой стороны, опять же недостатки contraction hierarchy.
Если представить себе, что можно записать в файл расстояния между точками, то рассчет маршрута занимал бы доли секунды, но файл был бы гигантский.

Так вот к чему я, Польша роутинг данные (без названий) занимает 100Мб, что на самом деле многовато, но петрушка в том, что для Car/Bicycle/Pedestrian должен быть свой файл, то есть 300Мб. И опять же невозможно повесить опции для типа avoid something, prefer. Я слышал Dennis собирался как-то пофиксить это в contraction hierarchies алгоритме и включить информацию по пробкам, но воз и ныне там.

Возможно я не понимаю до конца CH алгоритма, но мне кажется в этом есть концептуальная проблема. Надеюсь на удачное разрешение вопроса динамического роутинга и сравнительный размер файла :) Для сайтов без динамики подходит более чем! Для узконаправленных мобильных решений подходит однозначно!

kakkoii #

Работает быстро, но без restriction'ов и промежуточных точек как-то очень грустно. Зато для великов считает, для меня это огромный плюс в сравнении с OSRM (он по грунтовкам не хочет роутить).
Надеюсь будет развиваться.

AHTOH #

Виктор! ждём OsmAnd 1.6 !!! ;)

progserega #

Что-то он из Владивостока в Новосибирск через Китай ведёт:
http://graphhopper.com/maps/?point=43.112262%2C131.935501&point=55.027038%2C82.937508&vehicle=CAR

Плюс как-то не учитывает уровни дорог — ведёт по городу, вместо того, чтобы вести по хорошей (на уровень выше) объездной:
http://graphhopper.com/maps/?point=43.541705%2C131.974297&point=44.041699%2C132.036438&vehicle=CAR

Хотя наверно всё это мелочи.