| GraphHopper | |
|---|---|
| Developer | GraphHopper community |
| Stable release | |
| Written in | Java |
| Operating system | Cross-platform |
| Type | Search,Graph andGPS navigation software |
| License | Apache License 2.0 |
| Website | graphhopper |
| Repository | |
GraphHopper is anopen-sourcerouting library and server written inJava and provides a routing API over HTTP.[2] It runs on the server, desktop,Android,iOS orRaspberry Pi.[3][4] By defaultOpenStreetMap data for the road network and elevation data from theShuttle Radar Topography Mission is used. The front-end is open-source too and called GraphHopper Maps.[5]
GraphHopper can be configured to use different algorithms such asDijkstra,A* and itsbidirectional versions. To make routing fast enough for long paths (continental size) and avoid heuristical approaches GraphHopper usescontraction hierarchies by default. In the Java Magazine fromOracle, the author, Peter Karich, describes the techniques necessary to make the system memory efficient and fast.[6] Furthermore, GraphHopper is built on a large test suite including unit, integration and load tests.[7]
TheApache License allows everyone to customize and integrate GraphHopper in free or commercial products, and together with the query speed and OpenStreetMap data this makes GraphHopper a possible alternative toexisting routing services andGPS navigation software e.g. using the Maplibre Navigation SDK.[8]
Besides point-to-point routing for different vehicles GraphHopper can be used to calculatedistance matrices which are then used as an input forvehicle routing problems.[9] Other use cases are:
Notable users of GraphHopper areRome2rio,Deutsche Bahn,Komoot,Gnome[14] andFlixbus. Since February 2015, GraphHopper has been one of the APIs powering routing on the officialOpenStreetMap website and version 0.4 was released shortly afterwards in March 2015.[15][16]
In January 2016, the developers of GraphHopper and jsprit formed the company GraphHopper GmbH.
TheGraphHopper Directions API is an offering of the GraphHopper GmbH and includes a Geocoding API, a Distance Matrix API, a Map Matching API, an Isochrone API, a Cluster API, a Profiles API and a Route Optimization API besides the Routing API[17]