Jump to content

GraphHopper: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m bad link repair, replaced: OracleOracle, typo(s) fixed: Furthermore → Furthermore, using AWB (11080)
Peatar (talk | contribs)
mNo edit summary
Line 16: Line 16:
}}
}}


'''GraphHopper''' is a road routing library written in [[Java]] and provides a web interface called GraphHopper Maps.<ref>{{cite web|url=https://graphhopper.com/maps |title=Driving Directions - GraphHopper Maps |publisher=Graphhopper.com |date= |accessdate=2015-04-30}}</ref>{{Better source|reason=This is just a link to Grasshopper Maps app.|date=April 2015}} as well as a routing API over HTTP. It runs on the server, desktop, [[Android (operating system)|Android]], [[iOS]] or [[Raspberry Pi]].<ref>{{cite web|author= |url=https://github.com/graphhopper/graphhopper-ios |title=GraphHopper · GitHub |publisher=Github.com |date= |accessdate=2015-04-30}}</ref><ref>{{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 &#124; Karussell |publisher=Karussell.wordpress.com |date=2014-01-09 |accessdate=2015-04-30}}</ref> By default [[OpenStreetMap]] data for the road network and elevation data from the [[Shuttle Radar Topography Mission]] is used.
'''GraphHopper''' is a road routing library written in [[Java]] and provides a web interface called GraphHopper Maps.<ref>{{cite web|url=https://graphhopper.com/maps |title=Driving Directions - GraphHopper Maps |publisher=Graphhopper.com |date= |accessdate=2015-04-30}}</ref>{{Better source|reason=This is just a link to Grasshopper Maps app.|date=April 2015}} As well as a routing API over HTTP. It runs on the server, desktop, [[Android (operating system)|Android]], [[iOS]] or [[Raspberry Pi]].<ref>{{cite web|author= |url=https://github.com/graphhopper/graphhopper-ios |title=GraphHopper · GitHub |publisher=Github.com |date= |accessdate=2015-04-30}}</ref><ref>{{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 &#124; Karussell |publisher=Karussell.wordpress.com |date=2014-01-09 |accessdate=2015-04-30}}</ref> By default [[OpenStreetMap]] data for the road network and elevation data from the [[Shuttle Radar Topography Mission]] is used.


GraphHopper can be configured to use different algorithms such as [[Dijkstra's algorithm|Dijkstra]], [[A* search algorithm|A*]] and its [[Bidirectional search|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 Corporation|Oracle]] the author Peter Karich describes the techniques necessary to make the system memory efficient and fast.<ref name="javamag">{{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|accessdate=2015-04-30}}</ref> Furthermore, GraphHopper is built on a large test suite including unit, integration and load tests.<ref name="ciserver">{{cite web|title=public Travic CI: showing large test suite of GraphHopper|url=https://travis-ci.org/graphhopper/graphhopper|publisher=Travis-ci.org|accessdate=2015-04-30}}</ref>
GraphHopper can be configured to use different algorithms such as [[Dijkstra's algorithm|Dijkstra]], [[A* search algorithm|A*]] and its [[Bidirectional search|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 Corporation|Oracle]] the author Peter Karich describes the techniques necessary to make the system memory efficient and fast.<ref name="javamag">{{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|accessdate=2015-04-30}}</ref> Furthermore, GraphHopper is built on a large test suite including unit, integration and load tests.<ref name="ciserver">{{cite web|title=public Travic CI: showing large test suite of GraphHopper|url=https://travis-ci.org/graphhopper/graphhopper|publisher=Travis-ci.org|accessdate=2015-04-30}}</ref>

Revision as of 12:34, 8 August 2015

GraphHopper
Developer(s)Peter Karich
Stable release
0.4.1 / March 6, 2015; 9 years ago (2015-03-06)
Repository
Written inJava
Operating systemCross-platform
TypeSearch, Graph and GPS navigation software
LicenseApache License 2.0
Websitegraphhopper.com

GraphHopper is a road routing library written in Java and provides a web interface called GraphHopper Maps.[1][better source needed] As well as a routing API over HTTP. 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.

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.[4] Furthermore, GraphHopper is built on a large test suite including unit, integration and load tests.[5]

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.[6][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:

Directions API

The developers of GraphHopper also offer the GraphHopper Directions API for Business which includes a Geocoding API, a Distance Matrix API and a Route Optimization API besides the Routing API[13]

Users

Notable users of GraphHopper are Rome2rio, de:Falk (Verlag), Komoot, Gnome[14] and de:GPSies.com.[7] Since February 2015 GraphHopper has been one of the APIs powering bike and foot routing on the official OpenStreetMap website and version 0.4 was released shortly afterwards in March 2015.[15][16]

References

  1. ^ "Driving Directions - GraphHopper Maps". Graphhopper.com. Retrieved 2015-04-30.
  2. ^ "GraphHopper · GitHub". Github.com. 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. ^ "Java Magazine 2014, GraphHopper Maps: Fast Road Routing in 100% Java". Oraclejavamagazine-digital.com. Retrieved 2015-04-30.
  5. ^ "public Travic CI: showing large test suite of GraphHopper". Travis-ci.org. Retrieved 2015-04-30.
  6. ^ "Jaxenter, LocationTech Tour in Hamburg 2014". Jaxenter.de. Retrieved 2015-04-30.
  7. ^ a b "GPSies Blog: Schnelles Routing mit GraphHopper und OpenStreetMap". Blog.gpsies.com. Retrieved 2015-04-30.
  8. ^ "Optimising the Scheduling and Planning of Urban Milk Deliveries". Link.springer.com. 2015. Retrieved 2015-04-30. {{cite journal}}: Cite journal requires |journal= (help)
  9. ^ "Map Matching module of GraphHopper". Github.com. Retrieved 2015-04-30.
  10. ^ Motorways and firm performance: the case of Hungary (PDF) (Thesis). Etd.ceu.hu. 2014. Retrieved 2015-04-30.
  11. ^ "Isochrone API based on GraphHopper". Github.com. Retrieved 2015-04-30.
  12. ^ Angewandte Geoinformatik (PDF). 2014. ISBN 978-3-87907-543-0.
  13. ^ "ProgrammableWeb: GraphHopper's API Helps Get You From A to B". Programmaableweb.com. Retrieved 2015-04-30.
  14. ^ "Gnome Maps 3.14 uses the GraphHopper Directions API". Help.gnome.org. Retrieved 2015-04-30.
  15. ^ "Route Planning on OpenStreetMap.org". Blog.openstreetmap.org. Retrieved 2015-04-30.
  16. ^ "Heise Open: Quelloffener Routenplaner GraphHopper in Version 0.4 erschienen". Heise.de. Retrieved 2015-04-30.