GraphHopper
{{Infobox software
| name = GraphHopper
| screenshot = Graphhopper-screenshot-2.png
| caption =
| developer = GraphHopper community
| latest release version = 9.1
| latest release date = {{Start date and age|2024|05|05}}
| latest preview version =
| latest preview date =
| operating system = Cross-platform
| programming language = Java
| genre = Search, Graph and GPS navigation software
| license = Apache License 2.0
| website = {{URL|https://graphhopper.com}}
}}
GraphHopper is an open-source routing library and server written in Java and provides a routing API over HTTP.{{cite web|url=https://github.com/graphhopper/graphhopper |title=GitHub - GraphHopper |publisher=GraphHopper |access-date=2024-03-25}} It runs on the server, desktop, Android, iOS or Raspberry Pi.{{cite web|author= |url=https://github.com/graphhopper/graphhopper-ios |title=GraphHopper · GitHub |publisher=GraphHopper GmbH |date= |access-date=2015-04-30}}{{cite web|author= |url=https://karussell.wordpress.com/2014/01/09/road-routing-on-raspberry-pi-with-graphhopper/ |title=Driving Directions with GraphHopper and Java on Raspberry Pi | Karussell |publisher=Karussell.wordpress.com |date=2014-01-09 |access-date=2015-04-30}} 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.{{cite web|url=https://graphhopper.com/maps/ |title=GraphHopper Maps |publisher=GraphHopper.com |access-date=2024-03-25}}
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.{{cite web|title=Java Magazine 2014, GraphHopper Maps: Fast Road Routing in 100% Java|url=http://www.oraclejavamagazine-digital.com/javamagazine_open/20140102#pg72|publisher=Oraclejavamagazine-digital.com|access-date=2015-04-30|archive-url=https://web.archive.org/web/20150509104018/http://www.oraclejavamagazine-digital.com/javamagazine_open/20140102#pg72|archive-date=2015-05-09|url-status=dead}} Furthermore, GraphHopper is built on a large test suite including unit, integration and load tests.{{cite web|title=GitHub Actions showing the large test suite of GraphHopper|url=https://github.com/graphhopper/graphhopper/actions/workflows/build.yml|publisher=Github.com|access-date=2024-03-25}}
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.{{cite web|title=Jaxenter, LocationTech Tour in Hamburg 2014|url=https://entwickler.de/eclipse/locationtech-tour-2014|publisher=Jaxenter.de|access-date=2021-10-27|date=2014-10-27}}
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.{{cite book|chapter=Optimising the Scheduling and Planning of Urban Milk Deliveries|year=2015|doi=10.1007/978-3-319-16549-3_49|volume=9028|pages=604–615|last1=Urquhart|first1=Neil|series=Lecture Notes in Computer Science |title=Applications of Evolutionary Computation|isbn=978-3-319-16548-6}} Other use cases are:
- Track vehicles via map matching - i.e. 'snap' real world GPS points to digital road network{{cite web|title=Map Matching module of GraphHopper|url=https://github.com/graphhopper/map-matching|publisher=GraphHopper GmbH|access-date=2015-04-30}}
- Assist urban planning{{cite thesis|title=Motorways and firm performance: the case of Hungary|url=http://www.etd.ceu.hu/2014/hann_andras.pdf|year=2014|publisher=Etd.ceu.hu|access-date=2015-04-30}}
- Traffic simulation
- Isochrone calculation - i.e. determining the reachability for cars, pedestrians or bikes{{cite web|url=https://graphhopper.com/api/1/docs/isochrone/|title=GraphHopper Isochrone API|publisher=Github.com|access-date=2015-04-30}}
- Indoor routing like for warehouse optimizations or tradeshow planning
- Eco-efficient routing{{cite book|title=Angewandte Geoinformatik|isbn=978-3-87907-543-0|year=2014|url=http://gispoint.de/fileadmin/user_upload/paper_gis_open/537543013.pdf |last1=Strobl |first1=Josef |last2=Blaschke |first2=Thomas |last3=Griesebner |first3=Gerald |last4=Zagel |first4=Bernhard |publisher=Wichmann }}
- Virtual reality games like Scotland Yard
Users
Notable users of GraphHopper are Rome2rio, Deutsche Bahn, Komoot, Gnome{{cite web|title=Gnome Maps 3.14 uses the GraphHopper Directions API|url=https://help.gnome.org/misc/release-notes/3.14/more.html.en|publisher=Help.gnome.org|access-date=2015-04-30}} and Flixbus. Since February 2015, GraphHopper has been one of the APIs powering routing on the official OpenStreetMap website and version 0.4 was released shortly afterwards in March 2015.{{cite web|title=Route Planning on OpenStreetMap.org|url=https://blog.openstreetmap.org/2015/02/16/routing-on-openstreetmap-org/|publisher=Blog.openstreetmap.org|access-date=2015-04-30}}{{cite web|title=Heise Open: Quelloffener Routenplaner GraphHopper in Version 0.4 erschienen|date=11 March 2015 |url=http://www.heise.de/open/meldung/Quelloffener-Routenplaner-GraphHopper-in-Version-0-4-erschienen-2572558.html|publisher=Heise.de|access-date=2015-04-30}}
Company
In January 2016, the developers of GraphHopper and jsprit formed the company GraphHopper GmbH.
=GraphHopper Directions API=
The GraphHopper 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{{cite web|title=ProgrammableWeb: GraphHopper's API Helps Get You From A to B|url=http://www.programmableweb.com/news/graphhoppers-api-helps-get-you-to-b/2014/07/15|publisher=Programmaableweb.com|access-date=2015-04-30|date=2014-07-15|archive-date=2015-06-02|archive-url=https://web.archive.org/web/20150602231401/http://www.programmableweb.com/news/graphhoppers-api-helps-get-you-to-b/2014/07/15|url-status=dead}}