GraphHopper

A fast routing engine for calculating distances, travel times, and turn by turn instructions using OpenStreetMap data.

GraphHopper screenshot 1

GraphHopper is an open-source routing engine used to calculate distances, travel times, and turn-by-turn instructions between multiple points. It functions as either a standalone web server or a Java library, enabling the deployment of routing services on Linux, Mac OS X, and Windows. The system is designed to handle complex geospatial queries and can be integrated into larger software ecosystems via its web module.

The software primarily utilizes OpenStreetMap and GTFS data to provide geospatial calculations, though it can be adapted to other data sources through custom import procedures. It is used for various logistics and navigation tasks, including calculating reachable areas via isochrones and snapping GPS traces to road networks. Users can interact with the engine through a web interface, a Java API, or a JavaScript client, making it suitable for both server-side deployments and desktop applications.

Key features

  • Calculation of distance, time, and turn-by-turn instructions
  • Support for OpenStreetMap and GTFS data sources
  • Isochrone calculation to visualize reachable areas
  • Map matching to snap GPX traces to roads
  • Implementation of Dijkstra and A* routing algorithms
  • Contraction Hierarchies for faster response times
  • Support for various vehicle profiles and road attributes
  • Polyline encoding and GZIP filtering for reduced bandwidth

GraphHopper is written in Java and offers three distinct operational modes: speed, flexible, and hybrid. Speed mode utilizes Contraction Hierarchies to provide fast, lightweight responses using predefined vehicle profiles. Flexible mode allows for changing properties per request without the need for time-consuming preparation, while hybrid mode balances speed and flexibility for integrating dynamic data like traffic. The engine is built for developers who require a memory-efficient way to embed routing capabilities into Java applications or maintain a dedicated routing server.

This software serves as a technical foundation for geospatial routing, logistics management, and supply chain navigation.

Last Modified
Software TypeWeb App / Server
Platform
Last Activity15 days ago
Repository Age14 years
LicenseApache-2.0
Open Source Alternative to
Open Source Software.io

Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.