GraphHopper Routing Engine 5.0 Released

We just released the next version of GraphHopper, the flexible and fast open source routing engine for OpenStreetMap written in Java. Let’s see what’s included in this update:

Improved OSM Import

We revised GraphHopper’s data import process for OSM data. It is now a lot more flexible and we can better deal with node tags or way geometries including elevation. This will be fundamental for our ongoing work to make GraphHopper a great fit for many different or specialized usage scenarios. For example, we were already able to improve the spatial precision of custom areas and the travel time for ferries this way.

Better navigation

We improved GraphHopper’s capabilities to be used for navigation. For example, the heading parameter is now considered when we match input coordinates to the road network, can be used with our Java client, and custom weightings are now for the turn instructions calculation.

Faster preparation of Contraction Hierarchies

GraphHopper cannot just calculate routes within the OSM network, but it also does this within milliseconds! This is made possible by building a special data index, called Contraction Hierarchies. In this update we, again, made great progress in speeding up this process.

And more …

We improved the speed calculation for ferry routes, the handling of toll restrictions and much more. Take a look at our GitHub page where we keep the source code or our changelog file for all the details.


We merged more than 60 Pull Requests since we released version 4.0 last September. Thanks a lot to all contributors:

karussell, boldtrn, otbutz, shunfan-shao, michaz, ratrun, easbar

Start using GraphHopper

The GraphHopper routing engine is published under the Apache License 2.0, so it is free for anyone to use! You can see it in action on, or install it locally on your laptop or server. Do not hesitate to leave your feedback in our forum.

Happy routing!