Try out our live demo called GraphHopper Maps
The Readme lists all features.
See users of GraphHopper and let us know your application!
For all questions regarding the GraphHopper routing engine please use our forum. For bugs see our contributing guide.
Install the GraphHopper routing engine with the GraphHopper Maps UI with this installation guide on your machine. This will also install a web API that can be used in many programming languages.
- Web API: Documentation to communicate with the GraphHopper server via http.
- Deployment Guide: Details about deploying GraphHopper
- There are official API clients in Java and JavaScript.
You can change several aspects either programmatically or in the configuration. The configuration of routing profiles is documented here. The elevation configuration is separately documented here.
The quickstart is an introduction for developers. Explains git checkout, IDE setup and commands for setting up a GraphHopper server.
Find all changes in previous and current versions in the changelogs.
Read here on how to contribute as a developer and translator.
Various topics are explained in more detail separately:
- Technical overview: Technical details about how GraphHopper its calculations are working.
- Custom models: This tutorial explains how to customize an existing vehicle profile to your needs without to know Java.
- Create custom weighting: Documentation regarding Weighting. In almost all situations a custom model should be created instead.
- Simple routing: Tutorial how to integrate GraphHopper in your Java application (or pick any JVM language)
- Import GTFS: Simple steps to get GTFS import and routing done.
- LocationIndex: Code about how to get the location index for getting i.e. the nearest edge.
- Hybrid Mode: Details about speeding up the route calculation via A* and landmarks.
- Speed Mode: Details about speeding up the route calculations via Contraction Hierarchies.
- Low level API: Instructions how to use GraphHopper as a Java library.
- Custom Areas and Country Rules: Instructions on how to on how to use and create new SpatialRules. SpatialRules are used to enforce country-specific routing rules.
- Turn Restrictions: Details on how to enable and use turn restrictions.
- Isochrone generation in Java: Instruction on how to create isochrones using the low-level Java API.
- Postgis query script
The Android demo, that shows how to use GraphHopper for offline routing on Android, was available until GraphHopper 1.0. See discussion on this topic here.
There is a GraphHopper fork for iOS that allows to do offline routing on iOS. See the Instructions on how to setup this here including a sample application. See the necessary changes for modern iOS and GraphHopper 1.0 in this pull request.
Install the Windows Subsystem for Linux (WSL) or cygwin and follow the normal installation steps.
When using Powershell or cmd
the easiest way is to download all files manually (see the wget
parameters) and then run the java
command but replace the wildcard (-jar graphhopper*.jar
) with the exact jar file.
Setup in IntelliJ and NetBeans is just via open project. See this document to set up GraphHopper in Eclipse with maven.