GraphHopper is a fast and Open Source road routing engine.
OverviewGraphHopper offers memory efficient algorithms in Java for routing on graphs. E.g. Dijkstra and A* but also optimized road routing algorithms like Contraction Hierarchies. It stands under the Apache License and is build on a large test suite.
LicenseWe chose the Apache License to make it easy for you to embed GraphHopper in your products. We suggest to contribute back your changes (as GraphHopper will evolve fast) but of course this is not necessary.
OpenStreetMap SupportOpenStreetMap is directly supported from GraphHopper. Without the amazing data from OpenStreetMap GraphHopper wouldn't be possible at all. Other map data will need a custom import procedure.
DevelopmentDevelopment happens at GitHub. You can clone the project at GitHub.
Written in JavaGraphHopper is written in Java and runs on Linux, OS X, Windows, Raspberry Pi and Android. Other environments which supports at least Java 5 will work too.
AndroidOn Android we provide an integration with Mapsforge which makes offline navigation one step closer. Due to the usage of memory mapped files and Contraction Hierarchies we avoid allocating too much memory which makes it possible to run Germany-wide queries with only 32MB in a few seconds. We provide an Eclipse project as well as the Maven-Android integration to be used in other IDEs.
DesktopGraphHopper also works on the Desktop in a Java application without internet access. E.g. you could use the rough user interface called MiniGraphUI provided in the tools module. To have a proper and fast map visualization we'll have to wait for mapsforge 0.4 which will support the desktop via Swing/AWT. Or you have to use an older version of it. Ask on the mailing list for more up to date information.
Customizable APIWe've build the GraphHopper class which makes simple things easy. Still you can use the low level API of GraphHopper and you'll see that it was created to allow fast and memory efficient use of the underlying datastructures and algorithms.
- Written in Java and runs under Linux, Windows, Android, ...
- Business friendly due to Apache License 2.0, commercial support and ... see below!
- Based on many unit and integration tests
- Memory efficient data structures, algorithms and also the API is tuned towards ease of use and efficiency.
- Very fast. And via the speed-up technic called "Contraction Hierarchies" it can be even faster - CH is enabled by default.
- Simple installation - just Java necessary! Simple setup for developers due to Maven.
- Has algorithms ala A*, Dijkstra and the bidirected versions, plus one-to-many cases
- Works out of the box with OpenStreetMap (osm and pbf) but can be adapted to use your own data
- OpenStreetMap integration: Takes care of the road type, the surface, barriers, access restrictions, ferries, ...
- Uses only a few dependencies (trove4j and slf4j)
- Scales from small indoor- to world-wide-sized graphs
- Can be used on mobile devices with less than 32MB. For Android we additionally provide a demo with mapsforge.
- Supports car, bicycle, pedestrian vehicles by default. But you can easily create your own or customize existing vehicles.
- The web module returns highly compressed paths via gzip and polyline encoding.
- Quick Start for Users
- Quick Start for Developers
- Get Source Code
- See Issues
- Use our mailing list or Stackoverflow to ask questions!
0.2 release, 23-Nov-2013
Click to route
Email: emailPlease ask questions on Stackoverflow or sign up to our mailing list!
We offer different solutions besides GraphHopper itself to make routing simple and flexible. Routing problems occur in a wide range of applications: From outdoor planning to optimization in logistic software; from touristic apps to ridesharing websites - we offer the right and optimized package for you!
We provide training, support, development and hot fixes.Contact Us
The consulting package is for companies ...
- that don't want to waste time digging into GrapHopper or routing algorithms
- that need fast one-time support or a support/maintenance contract
- with developers who want learn GraphHopper fast
We offer custom GraphHopper installations with maintenance and support.Contact Us
The custom installation package is for companies ...
- that don't want to host own GraphHopper installations
- that need closed source or customized features
- that need support with their custom hosted GraphHopper solution
Web Routing API
A hosted solution of GraphHopper which works out of the box, is fast, easy to use and reliable.Get Invitation
The web routing API is for companies ...
- that need a cost effective GraphHopper solution and don't want custom features
- that additionally need many-to-many requests not available in the Open Source GraphHopper core.
The GraphHopper Team says thanks to
- OpenStreetMap - the best map data world wide!
- NetBeans - for the best Java IDE!
- GPSies - for hosting our GraphHopper API
- YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications.
- Xubuntu, Trove4J, Log4J, Guice, Maven and other Open Soure software.
- Images and icons for our website via Wikipedia, and famfamfam icons!