GraphHopper

Last updated
GraphHopper
Developer(s) GraphHopper community
Stable release
9.1 / May 5, 2024;2 days ago (2024-05-05)
Repository
Written in Java
Operating system Cross-platform
Type Search, Graph and GPS navigation software
License Apache License 2.0
Website graphhopper.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]

Contents

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:

Users

Notable users of GraphHopper are Rome2rio, Deutsche Bahn, Komoot, Gnome [13] 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. [14] [15]

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 [16]

See also

Related Research Articles

diagrams.net Free and open-source diagram editor

diagrams.net is a cross-platform graph drawing software developed in HTML5 and JavaScript. Its interface can be used to create diagrams such as flowcharts, wireframes, UML diagrams, organizational charts, and network diagrams.

<span class="mw-page-title-main">GitHub</span> Hosting service for software projects

GitHub is a developer platform that allows developers to create, store, manage and share their code. It uses Git software, providing the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.

<span class="mw-page-title-main">Etherpad</span> Open-source web-based collaborative real-time editor

Etherpad is an open-source, web-based collaborative real-time editor, allowing authors to simultaneously edit a text document, and see all of the participants' edits in real-time, with the ability to display each author's text in their own color. There is also a chat box in the sidebar to allow meta communication.

Chakra was a free and open-source JavaScript engine developed by Microsoft for its Microsoft Edge Legacy web browser. It is a fork of the same-named JScript engine used in Internet Explorer. Like the EdgeHTML browser engine, the declared intention was that it would reflect the "Living Web". The core components of Chakra were open-sourced as ChakraCore. In 2021, Microsoft terminated support for the engine, citing its transition to a Chromium based engine for Edge. Support has been transferred to the community, where it remains inactive.

<span class="mw-page-title-main">LightDM</span> Free, open-source X display manager

LightDM is a free and open-source X display manager that aims to be lightweight, fast, extensible and multi-desktop. It can use various front-ends to draw the user interface, also called Greeters. It also supports Wayland.

<span class="mw-page-title-main">Isochrone map</span> Map that depicts the area accessible from a point within a time threshold

An isochrone map in geography and urban planning is a map that depicts the area accessible from a point within a certain time threshold. An isochrone is defined as "a line drawn on a map connecting points at which something occurs or arrives at the same time". In hydrology and transportation planning isochrone maps are commonly used to depict areas of equal travel time. The term is also used in cardiology as a tool to visually detect abnormalities using body surface distribution.

<span class="mw-page-title-main">Open Source Routing Machine</span>

The Open Source Routing Machine or OSRM is a C++ implementation of a high-performance routing engine for shortest paths in road networks. Licensed under the permissive 2-clause BSD license, OSRM is a free network service. OSRM supports Linux, FreeBSD, Windows, and Mac OS X platform.

<span class="mw-page-title-main">Kivy (framework)</span> Free and multi-platform graphical library for Python

Kivy is a free and open source Python framework for developing mobile apps and other multitouch application software with a natural user interface (NUI). It is distributed under the terms of the MIT License, and can run on Android, iOS, Linux, macOS, and Windows.

<span class="mw-page-title-main">Akka (toolkit)</span> Open-source runtime

Akka is a source-available toolkit and runtime simplifying the construction of concurrent and distributed applications on the JVM. Akka supports multiple programming models for concurrency, but it emphasizes actor-based concurrency, with inspiration drawn from Erlang.

<span class="mw-page-title-main">Zopfli</span> Data compression software

Zopfli is a data compression library that performs Deflate, gzip and zlib data encoding. It achieves higher compression ratios than mainstream Deflate and zlib implementations at the cost of being slower. Google first released Zopfli in February 2013 under the terms of Apache License 2.0.

<span class="mw-page-title-main">Map matching</span> Matching of coordinates to physical locations

Map matching is the problem of how to match recorded geographic coordinates to a logical model of the real world, typically using some form of Geographic Information System. The most common approach is to take recorded, serial location points and relate them to edges in an existing street graph (network), usually in a sorted list representing the travel of a user or vehicle. Matching observations to a logical model in this way has applications in satellites navigation, GPS tracking of freight, and transportation engineering.

Eclipse Deeplearning4j is a programming library written in Java for the Java virtual machine (JVM). It is a framework with wide support for deep learning algorithms. Deeplearning4j includes implementations of the restricted Boltzmann machine, deep belief net, deep autoencoder, stacked denoising autoencoder and recursive neural tensor network, word2vec, doc2vec, and GloVe. These algorithms all include distributed parallel versions that integrate with Apache Hadoop and Spark.

A headless browser is a web browser without a graphical user interface.

<span class="mw-page-title-main">OpenFL</span> Software framework for video games

OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games. OpenFL applications can be written in Haxe, JavaScript, or TypeScript, and may be published as standalone applications for several targets including iOS, Android, HTML5, Windows, macOS, Linux, WebAssembly, Flash, AIR, PlayStation 4, PlayStation 3, PlayStation Vita, Xbox One, Wii U, TiVo, Raspberry Pi, and Node.js.

<span class="mw-page-title-main">GraphQL</span> Data query language developed by Facebook

GraphQL is an open-source data query and manipulation language for APIs and a query runtime engine.

<span class="mw-page-title-main">Enonic XP</span>

Enonic XP is a free and open-source web application platform and content management system (CMS) in one based on Java and Elasticsearch. Developed by the Norwegian software company Enonic, the microservice web platform can be used to build progressive web applications, Next.js websites, or web-based APIs. Enonic XP uses an application framework for coding server logic with JavaScript, and has no need for SQL as it ships with an integrated content repository. The CMS is fully decoupled, meaning developers can create traditional websites and landing pages, or use XP in headless mode, that is without the presentation layer, for loading editorial content onto any device or client. Enonic is used by major organizations in Norway, including the national postal service Norway Post, the insurance company Gjensidige, the national lottery Norsk Tipping, the Norwegian Labour and Welfare Administration, and all the top football clubs in the national football league for men, Eliteserien.

Eclipse Theia is an Eclipse open source project providing the Theia Platform and the Theia IDE.

<span class="mw-page-title-main">Deno (software)</span> Secure JavaScript and TypeScript runtime

Deno is a runtime for JavaScript, TypeScript, and WebAssembly that is based on the V8 JavaScript engine and the Rust programming language. Deno was co-created by Ryan Dahl, who also created Node.js.

References

  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.
  13. "Gnome Maps 3.14 uses the GraphHopper Directions API". Help.gnome.org. Retrieved 2015-04-30.
  14. "Route Planning on OpenStreetMap.org". Blog.openstreetmap.org. Retrieved 2015-04-30.
  15. "Heise Open: Quelloffener Routenplaner GraphHopper in Version 0.4 erschienen". Heise.de. 11 March 2015. Retrieved 2015-04-30.
  16. "ProgrammableWeb: GraphHopper's API Helps Get You From A to B". Programmaableweb.com. 2014-07-15. Retrieved 2015-04-30.