Технические требования и запуск
Разработчики GraphHopper выпустили стабильную версию 11.0. Ключевое изменение — требование к среде выполнения: теперь для работы необходим JVM версии не ниже Java 25. Это отражает курс на использование современных возможностей языка и оптимизацию производительности.
Движок работает как standalone веб-сервер или библиотека. Для локального развертывания достаточно скачать JAR-файл, конфигурацию и данные OSM (например, для Берлина), затем запустить сервер:
- Порт: 8989
- Интерфейс: GraphHopper Maps (встроенный веб-интерфейс)
- Данные: OpenStreetMap (OSM) и GTFS по умолчанию, с поддержкой точных данных о высоте.
Три режима маршрутизации: скорость против гибкости
GraphHopper 11 предлагает три алгоритмических режима, которые можно переключать «на лету» при наличии предварительной подготовки данных. Выбор режима зависит от баланса между скоростью ответа и потреблением памяти:
| Режим | Алгоритм | Скорость | Память (RAM) | Гибкость |
|---|---|---|---|---|
| Speed Mode | Contraction Hierarchies (CH) | Максимальная | Минимальная | Низкая (предопределенные профили) |
| Hybrid Mode | CH + гибкие параметры | Быстрая (на порядок быстрее Flexible) | Средняя | Высокая (поддержка трафика, кастомных свойств) |
| Flexible Mode | Dijkstra / Bidirectional | Базовая | Высокая | Максимальная (без предварительной подготовки) |
Функциональные возможности
Помимо классического A-to-B маршрутизации, движок поддерживает:
- Isochrone calculation: расчет зон доступности за определенное время.
- Map Matching: привязка GPX-треков к дорогам.
- Mobile Navigation: интеграция с Maplibre Navigation SDK и ferrostar SDK.
- Route Optimization: через интеграцию с проектом jsprit (для коммерческого API).
Экосистема и лицензирование
GraphHopper распространяется под лицензией Apache License 2.0, что позволяет использовать его в проприетарных коммерческих продуктах без раскрытия исходного кода. Коммерческая версия (GraphHopper Directions API) включает дополнительные сервисы: Matrix API, Isochrone API и Address Search (на базе проекта Photon).
Для разработчиков доступны Java и JavaScript клиенты, а также поддержка Docker-образов от сообщества. Официальная поддержка офлайн-маршрутизации на Android в текущей версии снята, но функционал сохраняется в старых релизах (например, v1.0).
Источник: Github ↗
