GraphHopper

GraphHopper
Developer(s)GraphHopper community
Stable release
9.1 / May 5, 2024; 5 months ago (2024-05-05)
Repository
Written inJava
Operating systemCross-platform
TypeSearch, Graph and GPS navigation software
LicenseApache License 2.0
Websitegraphhopper.com

GraphHopper is an open-source routing library and server written in Java and provides a routing API over HTTP.[1] It runs on the server, desktop, Android, iOS or Raspberry Pi.[2][3] By default OpenStreetMap data for the road network and elevation data from the Shuttle Radar Topography Mission is used. The front-end is open-source too and called GraphHopper Maps.[4]

GraphHopper can be configured to use different algorithms such as Dijkstra, A* and its bidirectional versions. To make routing fast enough for long paths (continental size) and avoid heuristical approaches GraphHopper uses contraction hierarchies by default. In the Java Magazine from Oracle, the author, Peter Karich, describes the techniques necessary to make the system memory efficient and fast.[5] Furthermore, GraphHopper is built on a large test suite including unit, integration and load tests.[6]

The Apache 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 to existing routing services and GPS navigation software e.g. using the Maplibre Navigation SDK.[7]

Besides point-to-point routing for different vehicles GraphHopper can be used to calculate distance matrices which are then used as an input for vehicle routing problems.[8] Other use cases are:

  1. ^ "GitHub - GraphHopper". GraphHopper. Retrieved 2024-03-25.
  2. ^ "GraphHopper · GitHub". GraphHopper GmbH. Retrieved 2015-04-30.
  3. ^ "Driving Directions with GraphHopper and Java on Raspberry Pi | Karussell". Karussell.wordpress.com. 2014-01-09. Retrieved 2015-04-30.
  4. ^ "GraphHopper Maps". GraphHopper.com. Retrieved 2024-03-25.
  5. ^ "Java Magazine 2014, GraphHopper Maps: Fast Road Routing in 100% Java". Oraclejavamagazine-digital.com. Archived from the original on 2015-05-09. Retrieved 2015-04-30.
  6. ^ "GitHub Actions showing the large test suite of GraphHopper". Github.com. Retrieved 2024-03-25.
  7. ^ "Jaxenter, LocationTech Tour in Hamburg 2014". Jaxenter.de. 2014-10-27. Retrieved 2021-10-27.
  8. ^ Urquhart, Neil (2015). "Optimising the Scheduling and Planning of Urban Milk Deliveries". Applications of Evolutionary Computation. Lecture Notes in Computer Science. Vol. 9028. pp. 604–615. doi:10.1007/978-3-319-16549-3_49. ISBN 978-3-319-16548-6.
  9. ^ "Map Matching module of GraphHopper". GraphHopper GmbH. Retrieved 2015-04-30.
  10. ^ Motorways and firm performance: the case of Hungary (PDF) (Thesis). Etd.ceu.hu. 2014. Retrieved 2015-04-30.
  11. ^ "GraphHopper Isochrone API". Github.com. Retrieved 2015-04-30.
  12. ^ Strobl, Josef; Blaschke, Thomas; Griesebner, Gerald; Zagel, Bernhard (2014). Angewandte Geoinformatik (PDF). Wichmann. ISBN 978-3-87907-543-0.