GraphHopper Routing Engine 6.0 Released

We have released the next version of GraphHopper, the flexible and fast open source routing engine for OpenStreetMap. Read more about it on GitHub and read on to find out what’s new.

A car route that avoids climbs with more than 5m incline per 100m. In the bottom right corner the average slope is shown as color-encoded value for the entire path which allows you to compare this with the standard route (click the custom button to disable the custom model)

Faster Route Calculation

The route calculation for the flexible mode got up to 30% faster! Great rework from @easbar (#2571 and #2600).

And for the flexible mode the alternative route finding algorithm got a lot faster due to a bug fix (#2603).

More flexibility

The internal architecture with the BaseGraph, TagParsers and EncodingManager classes was heavily refactored by @easbar. It was finally possible to remove the FlagEncoder (#2561, #2611, #2619) and also some other legacy classes (#2540, #2541, #2542, #2550, #2551, #2559, #2567, #2606).

This work makes the handling of vehicle profiles with all the customization possibility easier.

Right-hand side value expressions and roads vehicle

Due to the aforementioned refactoring and with changes like #2568 and #2594 the custom_model profile configuration got much more powerful. Additionally there is now the urban_density encoded value (#2637), and a max_slope and average_slope (see image above and #2645). Combined with the “roads” vehicle you can model e.g. waste collection vehicles which, under certain conditions, are allowed to do unusual things like use footways or drive oneways in the opposite direction. Or your vehicle can consider elevation changes to avoid or favour them or to change the speed.

All these new possibilities deserve a separate blog post which is coming soon.

Better documentation

The deployment guide was updated (#2576). See also our blog Host Your Own Worldwide Route Calculator With GraphHopper.

Better instructions

Instructions now contain the destination information from OpenStreetMap making route guidance for cars more descriptive. So instead of “Turn right” the instruction now reads e.g. “Turn right and take A 4 toward Dresden” – see this example on the maps. (#2597, #2598, #2632, #2622, #2624)

The time and distance values of the path details and instructions are now consistent with the global time and distance values of the path. See #2626.


Along with many smaller bug fixes and enhancements we merged more than 45 pull requests since we released the last version 5.0 in March. Thanks a lot to all contributors:

easbar, boldtrn, otbutz, karussell, michaz, ratrun, RafaelSTelles, PanCakeConnaisseur, lukasalexanderweber

Start using GraphHopper

You can see it in action on, or install it locally on your laptop or server. Do not hesitate to ask questions or leave feedback in our forum.

Happy routing!