LLMpediaThe first transparent, open encyclopedia generated by LLMs

GraphHopper

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Mapbox Hop 6
Expansion Funnel Raw 63 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted63
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
GraphHopper
NameGraphHopper
TitleGraphHopper
DeveloperGraphHopper GmbH
Initial release2013
Programming languageJava
PlatformCross-platform
LicenseApache License 2.0

GraphHopper is an open-source routing and map-matching library implemented in Java and maintained by a company and community contributors. It provides routing for automobiles, bicycles, pedestrians, and custom profiles, integrating with digital map sources and server infrastructures. Widely used in navigation, logistics, and geographic information systems, it supports turn restrictions, elevation data, and vehicle routing extensions.

Overview

GraphHopper began as a project to provide fast shortest-path routing and route optimization services, combining classical algorithmic work with practical engineering for web and embedded environments. The project ecosystem includes a routing engine, a web API, client libraries, and tooling for map processing tied to several mapping and transport projects. It interoperates with prominent projects and institutions such as OpenStreetMap, OSM contributors, Mapbox, HERE Technologies, TomTom, Esri, QGIS, and PostGIS.

Architecture and Components

The core architecture separates preprocessing, routing, and API layers, enabling modular deployment across server clusters and edge devices. Key components include a graph preparation module, a routing core, a flexible profile system, and adapters for tiles and offline stores. The system integrates with storage and compute projects like Apache Cassandra, Redis, ElasticSearch, Hadoop, Kubernetes, and Docker for scaling and orchestration. For development and CI it relies on ecosystems involving Maven, Gradle, JUnit, and Travis CI or GitHub Actions.

Routing Algorithms and Features

GraphHopper implements and extends classical shortest-path algorithms and heuristics to support real-world constraints. It uses variants of Dijkstra's algorithm, A* search algorithm, and Contraction Hierarchies for speedups, and supports multi-criteria routing, turn costs, and custom weighting for profiles such as car, bike, and foot. The project also includes map-matching algorithms to align GPS traces with road networks, and integrates with vehicle routing problem solvers related to research from OR-Tools, Google Research, and combinatorial optimization literature exemplified by work from Jon Kleinberg, Éva Tardos, and David Karger.

Data Sources and Format

GraphHopper primarily consumes vector map data from OpenStreetMap in Protocolbuffer Binary Format or XML extracts, and can incorporate supplemental layers such as digital elevation models from NASA, SRTM, and ASTER. It interoperates with tile services and vector tile formats used by Mapbox GL, TileServer GL, and CartoDB. Internally it encodes graphs, edges, nodes, and turn restrictions using binary-packed formats optimized for memory and I/O, aligning with practices seen in OSRM and spatial databases like PostGIS.

Deployment and Integrations

GraphHopper is deployed in cloud and on-premises environments supporting RESTful APIs and SDKs for mobile and web clients. Integrations and use cases span delivery and logistics platforms, bike-sharing services, and municipal transport projects involving organizations such as Uber, Lyft, BlaBlaCar, Deutsche Bahn, SNCF, Daimler AG, and BMW. It offers connectors for fleet management systems and telemetry stacks like Prometheus, Grafana, and trace systems inspired by Jaeger (software) and Zipkin. Mobile implementations interact with SDKs from Android (operating system), iOS, and mapping libraries such as Leaflet, OpenLayers, and Cesium (software).

Performance and Benchmarks

Performance characteristics focus on pre-processing time, memory footprint, and per-query latency under various workloads and network sizes. Benchmarks compare implementations using routing acceleration techniques to projects like OSRM, Valhalla (routing engine), and proprietary engines from HERE Technologies and TomTom. Scaling experiments are often run on hardware or cloud providers such as Amazon Web Services, Google Cloud Platform, and Microsoft Azure with orchestration through Kubernetes and load testing using JMeter or Gatling (software).

Licensing and Community Development

GraphHopper is published under the Apache License version 2.0, enabling commercial and academic adoption while fostering an active contributor community on GitHub. The project governance involves maintainers and corporate sponsorship, with community engagement through issue trackers, pull requests, mailing lists, and events such as FOSDEM, State of the Map, and conferences where routing and geoinformatics research is presented. Contributors range from independent developers to engineers at mapping companies and academic research groups.

Category:Routing software Category:Open-source mapping software Category:Java (programming language) software