Hacker Newsnew | past | comments | ask | show | jobs | submit | sevko's commentslogin

Source code is here: https://github.com/valhalla


Whoops, looks like you responded just after I deleted my comment having seen your other. Thanks! Was searching for that link without success. It's awesome that they wrote most in C++ though!


Also, source code is here: https://github.com/valhalla


Since most routing software is proprietary, I think it would be good to combat it by using a strong copyleft on the Valhalla components. GPLv3+ for client software and AGPLv3+ for server software would be awesome.


No thanks, I'd like to be able to see something like this in a GPS unit, even if that GPS unit isn't totally copyleft as well


Glancing at the Valhalla repos, it looks like the MIT license across the board: https://github.com/valhalla ; https://github.com/valhalla/thor/blob/master/COPYING ; https://github.com/valhalla/chef-valhalla/blob/master/LICENS... ; etc...

Also, it's not so much that the routing engines are proprietary -- the best ones are not. The underlying databases are the secret sauce.


> The underlying databases are the secret sauce.

No, it is not only about the database. Also about algorithms. But a lot about engineering and optimizing.


You make a great point about engineering. The interaction of algorithms/techniques and the database, as well as computational infrastructure and UI/UX, are all significant areas of differentiation. I still disagree about algorithms themselves as a differentiator -- everyone has access to excellent shortest path algorithms already. Other geospatial optimizations (scheduling, circuits, flows, etc) are a different story; as represented by the many scientific disciplines that pursue those problems: operations research, graph theory, network science, location science, etc.


what are the best ones?


For speedy street routing, the Open Source Routing Machine: 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 and 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_... 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...

For nuanced or complex problems, set up your objectives and constraints against a good solver: http://en.wikipedia.org/wiki/List_of_optimization_software I'm partial to Google's OR Tools https://github.com/google/or-tools (Apache License).


Just 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).


@karussell,

For a public source, Dennis Luxen updated his Linkedin profile.

Thanks for adding your knowledge about the internals of Valhalla code.


ah, easy, thanks :) !


How do you define best?

I'm the author of GraphHopper. Easy to setup, fast and flexible. Try it here: https://graphhopper.com/maps/


+1 ...and open source under Apache License 2.0 :)


A similar (proof of concept) application: http://bitshift.it/ Demo video: https://vimeo.com/98697078


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: