GraphHopper calculates optimal routes in road networks (for example taken from OpenStreetMap) for many different vehicle types and finds the ideal itinerary when using public transit. It is released under the Apache License 2.0 and you can easily try its road routing capabilities on GraphHopper Maps. Besides the route calculations the GraphHopper engine offers a lot more features like the map matching (“snap to road”), the navigation and the isochrone calculation (for a point it finds all reachable roads within a specified time). See the end of this post for some impressions and view GraphHopper on Github!
Customizable routing: Without knowledge of Java and just some JSON (or YAML) configuration you can now tweak the default vehicle profiles. You can do this on a per-request basis, but also use your configuration with the fast hybrid- and speed modes. Use this to avoid bridges, motorways, ferries, steps or certain areas, avoid roads with truck limits, change the speed or max_speed variables or prioritize certain road classes like official bike routes. You can get very creative here! From @karussell and @easbar. To find out more see the documentation, issue #1841 and this blog post. Or try on this demo server and click on the flex icon near the ‘Search’ button.
A major code refactoring that includes turn costs calculation within the ‘Weighting’ class from @easbar. See our changelog.
A major refactoring towards profiles that replaces the ‘weighting’ and ‘vehicle’ parameters with a new ‘profile’ parameter. This requires some configuration changes. For the most cases you can use our converter tool. See the documentation. From @easbar.
Alternative route calculations are now much faster as they benefit from node- or edge-based Contraction Hierarchies #1722 from @michaz
Isochrone refactorings and improvements like edge-based graph traversal and turn restriction support from @michaz. See e.g. #1824.
Add new ‘curbside’ parameter #1697 to approach roads from a specific side from @easbar.
Bilinear interpolation for elevation #1942 from @msbarry
Many changes and improvements for spatial rules from @otbutz