Don’t hesitate to contact us:
Today the GraphHopper routing engine turned 8 years. It has now over 2500 stars at GitHub and together we pushed over 4300 commits with contributions from over 80 contributors – thanks a lot! See here for the first commits.
Additionally we invested into our other open source project jsprit. jsprit was created in 2013 from Stefan and is a toolkit for solving rich traveling salesman and vehicle routing problems. It has now over 1000 stars and more than 2000 commits. Together with the GraphHopper routing engine the jsprit toolkit creates the foundation for the GraphHopper Route Optimization API, our commercial service to solve vehicle routing problems. This commercial part is mentioned here as it is important for the success, quality and sustainability of our open source projects.
What began as a solo development expanded to team work: multiple core developers and many contributors. 3 years ago I already wrote a small retrospect and let’s expand on it a bit. It was and is an impressive journey for me and I still enjoy it every day and I think this applies to the whole GraphHopper team.
In the beginning I played around with Dijkstra and OpenStreetMap data and wanted to have it in Java as I wanted to leave my C/C++ experience behind me. Doing this in Java was the first challenge to solve.
It took a few months and over 1 year and then I released version 0.1.
Later NopMap contributed elevation data improvements and other vehicle profiles, so not only car worked, but also routing for horses. Other profiles like foot and bike were added. Many bike profile improvements came and come from ratrun. With this help the new biking feature for the Directions API was launched even a bit earlier than Google Maps was able to provide directions for bikes in Germany & France. Of course we used and still use OpenStreetMap data and that is the reason we are still ahead of many others (:proud_smiley).
For several years the routing engine did not support turn restrictions. And even after this big feature was contributed from Karl, it was still not available for the so called speed-mode (Contraction Hierarchies). It is incredible hard to implement turn cost support for the speed-mode with a ‘normal’ “node-based” graph that we are using, i.e. junctions are nodes and the connections are the edges. And then luckily Andi was able to implement this. See this PR and the 0.12 release announcement for more details on this journey.
Michael also implemented the public transit module.
The Isochrone module, first a commercial feature, later open source, was created from Michael and me.
Furthermore Robin improved the turn instructions, implemented round tours, the motorcycle vehicle profile and many more things.
Over the years we got 43 translations for the turn instructions – special thanks goes to Manfred and his team!
There is now even a GraphHopper fork that does routing on rails.
An exciting new feature for the 1.0 release will be a highly configurable routing.
Over the years our open source work was supported from Komoot, Deutsche Bahn, Talent Systems, GPSies, Geofabrik, curbside, Falk, BMW Car IT, Sidekix and kurviger. And last but not least from the GraphHopper GmbH. Thanks a lot!