GraphHopper

Бесплатно
Открытый исходный код
Windows
macOS
Linux
Android
iOS

Сайт: www.graphhopper.com

GraphHopper — это программный движок для маршрутизации и обработки географических дорожных сетей, ориентированный на экосистему OpenStreetMap. Проект реализован на языке Java и предоставляет инструменты для расчёта маршрутов, построения матриц расстояний, сопоставления треков (map matching) и решения задач оптимизации маршрутов. GraphHopper доступен как открытый проект с возможностью самостоятельного развёртывания, а также в виде коммерческого Directions API и облачных сервисов, предлагающих дополнительно масштабирование и поддержку.

Архитектура GraphHopper включает компоненты для импорта и предобработки данных карты, создания графовой модели дорог и выполнения алгоритмов поиска кратчайшего пути, таких как вариации Dijkstra и A*. Поддерживаются разные профили передвижения (авто, пешеход, велосипед и пр.), настройка ограничений и весовых функций, а также расширения для скоростных режимов, учёта ограничений по высоте/ширине и оптимизации с учётом времени. Проект используется в задачах навигации, анализа сетей и встраиваемых решений для логистики, контроля доставок и мобильных приложений.

  • Маршрутизация: вычисление оптимальных и альтернативных маршрутов для различных типов транспорта.
  • Матрицы расстояний: массовый расчёт временных и дистанционных матриц между наборами точек.
  • Map matching: привязка GPS-треков к дорожной сети с восстановлением реального пути.
  • Поддержка профилей: настраиваемые профили движения с разными весовыми функциями и ограничениями.
  • Оптимизация маршрутов: инструменты для решения задач множественных остановок и логистики (routing optimization).
  • Импорт данных: загрузка и предобработка данных OpenStreetMap для создания внутреннего графа.
  • Коммерческое API: облачные и управляемые сервисы для использования в продуктах без локального развёртывания.
  • Расширяемость: модульная архитектура, позволяющая добавлять плагины и адаптировать поведение алгоритмов.
  • Производительность: оптимизации для работы с большими объёмами данных и многопоточными вычислениями.
  • Лицензирование: наличие открытой версии и коммерческих предложений для корпоративного использования.
Подробнее