Skip to content
Branch: master
Find file Copy path
Find file Copy path
8 contributors

Users who have contributed to this file

@karussell @henningvs @boldtrn @willcohen @njanakiev @michaz @HelgeKrueger @AnahitaS
93 lines (57 sloc) 4.78 KB

GraphHopper Documentation

Getting Started

Try out our live demo called GraphHopper Maps

GraphHopper Maps

The Readme lists all features or this list of slides. See users of GraphHopper or Android apps and let us know your application!


For all questions regarding the GraphHopper routing engine please use our forum. For bugs see our contribute section below.

For Users

Install the web demo 'GraphHopper Maps' with this user guide on your machine or the Android demo.


The web module provides a web API for other programming languages as well as starts a simple user interface called GraphHopper Maps

  • Routing API: Documentation of the Web API to communicate with any GraphHopper server via http.
  • Deployment Guide: Details about deploying GraphHopper
  • There are official API clients in Java and JavaScript.


You can configure several aspects either programmatically or just via a configuration.

The elevation configuration is separately documented here.

For Developers

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.
  • Simple routing: Tutorial how to integrate GraphHopper in your Java application (or pick any JVM language)
  • Create custom weighting: Documentation about how to create a custom weighting class to influence the track calculation.
  • Import GTFS: Simple steps to get GTFS import and routing done.
  • LocationIndex: Documentation 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.
  • Create new FlagEncoder: Documentation to create new routing profiles to influence which ways to favor and how the track-time is calculated.
  • Spatial Rules: Instruction 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.
  • Change Graph: Details about changing values of the graph without restarting GraphHopper.
  • Postgis query script

Other links



Instructions on how to setup the GraphHopper-iOS clone for iOS development are here including a sample application.


Documentation about how to get an GraphHopper instance running on windows via cygwin is available here.


Setup in IntelliJ and NetBeans is just via open project. See this document to set up GraphHopper in Eclipse with maven.

You can’t perform that action at this time.