Как стать автором
Обновить

Как использовать GraphHopper для построения пешеходных маршрутов по собственным правилам

Время на прочтение5 мин
Количество просмотров7.8K
Всего голосов 12: ↑11 и ↓1+17
Комментарии16

Комментарии 16

Мы применяли Graphhopper, в том числе из Spark приложений, там реально достаточно продуманный API, и в целом все удобно. Мне кажется, Graphhopper незаслуженно мало популярен. Особенно, если вы на Java пишете.
Я не очень понял из документации в репозитории, есть ли open source вариант GraphHopper, предоставляющий REST? Или открытая редакция предполагает использование в составе Java-приложения?
Такой вариант есть, посмотрите документ Quickstart, нужно будет скачать уже готовый web service jar. После запуска получите аналог graphhopper.com/maps, взаимодействие с API можно на нём и посмотреть или в документации Routing API.

Я создаю своё Java приложение потому что хочу работать через низкоуровневое API, прошу прощения если ввёл в заблуждение.
Спасибо! попробую.
Я бы советовал почитать документацию на основном сайте. GraphHopper не весь open source, некоторые части они не открывали совсем, некоторые не сразу, в общем, там все меняется, на github не все новости отражены. Ну т.е. REST-то допустим есть, но какие конкретно API там имеются — это отдельная история (в том смысле, что кроме routing есть еще isochrone, например, и т.п.).
Мне нужно только построение маршрутов. На данных OSM. Я пробежался и по сайту и по рпепозиторию, но не совсем понял.
Ну, дело в том, что там есть еще такой API, как отображение точки на граф дорог. Т.е. вы скажем в качестве исходной точки задаете произвольную, а этот API ее матчит на ближайшую точку на графе (ну т.е. представим, что исходная точка в лесу, а дорога по периметру). Вот собственно Routing API всегда был открыт (ну, насколько я помню), а эти некоторые другие — не всегда, то есть тут нужно еще и на версию поглядеть.

В общем, смотрите матрицу вот тут: www.graphhopper.com/open-source, там написано, что открыто, что нет.
Спасибо! Навскидку свободная редакция мне подходит. Полагаю, что это как раз то, что я искал. Надо пробовать.
Если интересует простое построение маршрутов/навигация или получение travel distance/time между точками, то посмотрите https://github.com/Project-OSRM/osrm-backend
Можно легко поднять как веб сервер и общаться через REST API. Документация http://project-osrm.org/docs/v5.23.0/api/#
Круто! Есть готовый контейнер, так что буду пробовать. Спасибо.
который, по координатам начала и окончания пути, вернёт массив координат маршрута.

Только по началу и окончанию?
Сам по себе GraphHopper идеален для нужного/гибкого построения маршрута с промежуточными, заданными точками.
Насколько я понимаю RoutingAlgorithm имеет метод который строит только по двум точкам, и все его реализации, например Dijkstra — тоже.

Речь идёт именно про низкоуровневое API.

Вероятно метод
List<Path> calcPaths(int from, int to);
вызывается несколько раз, в зависимости от количества этих промежуточных точек, а результат объединяется.

Если бы мне нужно было строить через промежуточные точки, я бы так и сделал, а потом объединил множество
List<Double[]>
в один ответ.
Строить маршрут по двум точкам (для пользователя так себе, я об этом, а не возможностях api).
Например в openstreetmap.org используется graphhopper, но он строит маршрут по 2 точкам, не так гибко, как нужно пользователю. Поэтому пользователь переходит на graphhopper.com и строит маршрут с промежуточными точками (через любые места, которые ему нужно посетить. И с graphhopper для пользователя это легко и просто).

есть еще классная штука для оптимизации маршрутов jsprit, но по ней документацию собрать крайне сложно. я уже много месяцев разбираюсь, но есть вопросы которые до сих пор не получается решить, а поддержки у них нет.

Вы, должно быть, логистикой занимаетесь? К сожалению не использовал jsprit.

Да, есть задумка, пока изучаем, но с документацией беда, в форумах ни разу никто не ответил, а специалистов вообще нет, так что все пока не торопко получается, к сожалению

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории