Don’t hesitate to contact us:
We just released a new version of our open source routing engine and server for OpenStreetMap (OSM). You don’t know what a routing engine for OpenStreetMap is? Well, OpenStreetMap is a free digital map of the entire world and with a routing engine like GraphHopper you can make use of this data to find the best route between two places (and much more).
Since version 1.0 we are trying to build two releases per year so you can take advantage of recent improvements and new features early. Let’s take a look at the most important changes since version 3.0.
We replaced and extended so called ‘spatial rules’ with what we now call custom areas. You can use custom areas to customize properties of GraphHopper’s road network in arbitrary areas. So what does this mean? In OpenStreetMap roads are represented as lines that can carry various tags to describe their properties, like the width, surface or speed limitations. GraphHopper does not keep all these tags, but rather stores certain (configurable) attributes, so called encoded values, that are derived from the OSM tags for each road. Using custom areas you can now modify the mapping between the OSM tags and encoded values depending on the location of a road. You can also create your own encoded values just based on the location. Sounds interesting? Make sure to read the documentation here.
GraphHopper now knows the country every road is located in. Like all other encoded values you can show the country of each road along the route:
You can not only show the different encoded values (like the country) along a route, but you can also use them to adjust the routing. If you have not heard about this feature yet make sure to read this previous blog post. Here is an example where we calculate the route between the same locations, but avoid going through Switzerland:
This release comes with many more new features and improvements. You can always consider our changelog or follow the milestones on Github to keep track of the latest changes. Here are the most important changes of release 4.0:
api module into
stable branch. To keep track of releases after and including release 4.0 you should use the 4.x release branch instead.
Thanks a lot to all contributors:
karussell, ratrun, michaz, otbutz, Anvoker, Kirill89, OlafFlebbeBosch, gchevalier, gberaudo, matkoniecz, easbar