31 ms·
For speedy street routing, the Open Source Routing Machine: http://project-osrm.org/ http://project-osrm.org/ Like Google's proprietary routing engine, it lever
by glennon 11y ago
For speedy street routing, the Open Source Routing Machine: http://project-osrm.org/ http://project-osrm.org/ Like Google's proprietary routing engine, it leverages the scale of local and regional travel (via contraction hierarchies, arterial travel is suited for precomputed cacheing); result: the system can be tuned to give near instantaneous results. OSRM had been led by Dennis Luxen of Mapbox, though he just moved to Apple. The OP (Mapzen's Valhalla) appears to have a similar approach as OSRM. Good libraries for other scenarios exist; e.g., cycling and multimodal planning -- see: http://wiki.openstreetmap.org/wiki/Routing http://wiki.openstreetmap.org/wiki/Routing and OpenTripPlanner https://github.com/opentripplanner/OpenTripPlanner https://github.com/opentripplanner/OpenTripPlanner
There's an academic Thesis on the principles of contraction hierarchies that is worth a look if you're in this space. http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf http://algo2.iti.kit.edu/documents/routeplanning/geisberger_... My favorite is actually a Master's thesis that steps through the process of using contraction hierarchies to build a routing engine (MoNav) on OpenStreetMap data. https://code.google.com/p/monav/downloads/detail?name=thesis.pdf&can=2&q= https://code.google.com/p/monav/downloads/detail?name=thesis...
For nuanced or complex problems, set up your objectives and constraints against a good solver: http://en.wikipedia.org/wiki/List_of_optimization_software http://en.wikipedia.org/wiki/List_of_optimization_software I'm partial to Google's OR Tools https://github.com/google/or-tools https://github.com/google/or-tools (Apache License).
- karussell 11y agoJust curious: Where did you heard about that Dennis moved to Apple :) ? Some clarification: * the process of the route finding is done by Dijkstra or A* or with a preprocessing (CH) * valhalla does not use CH to my knowledge * route optimization requires a completely different technique and valhalla does not do this > "The OP (Mapzen's Valhalla) appears to have a similar approach as OSRM" no :) ! OSRM is limited to CH (really fast) and valhalla is limited to Dijkstra/A* (really flexible).