Try out our live demo called GraphHopper Maps
The Readme lists all features or this list of slides. 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 contribute section below.
Install the web demo 'GraphHopper Maps' with this user installation guide on your machine. This will also install a web API that can be used in many programming languages.
- 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 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.
- 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: 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.
- 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.
- Postgis query script
- Add GraphHopper Maps to your Browser: Instructions how to setup GraphHopper as the standard search engine in your browser.
- Embed GraphHopper on your website: A small code snippet on how to integrate GraphHopper Maps in your web site like a contact form
The Android demo, that shows how to use GraphHopper for offline routing on Android, was available until GraphHopper 1.0.
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.
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.