posts /

Use OSM routing

Posted Sun 30 Jan 2022 08:39:41 PM CET Florian Lohoff

The last Weekly News mentioned a warning not to use OSM as the only truth in routing.

I must disagree here. OSM focussed on a "nice map" for the last decade producing a nice visual appearance. So we focused on tagging for the renderer. For the average mapper thats a pretty tight feedback loop be having the result for their doing within minutes so the result was fine tuned in a lot of simple, small, incremental steps.

Routing is a much more complex beast and basically a 2nd tier usage. It takes much longer to show differences and a lot of times its a black box for the average mapper.

There are multiple issues here:

  • There is basically no documentation on which tags influence routing for what engine. (access=private, lanes=, maxspeed, width etc)
  • There is very little knowledge about geometry influencing "Announcements" in routing
  • Feedback loop is much longer as routing graphs are not rebuild within minutes but rather weeks to months
  • Changes can not be experienced visually
  • There are no good QA tools for routing changes

So there is no real feedback loop for the average mapper to fix, tune or even enable routing.

The only way to actually make routing in OSM usable is by using it. On a daily base and fixing up "Broken announcements" and non optimal routing.

The more people actually use it and report back errors, the better the map gets.

For a very small area in OSM i am actually monitoring routing using OSRM. So every 2 hours i calculate 10th of thousands of routes between manually selected lat/lons and alert about changes in time/distance. This is not something which is scalable to the planet but at least it keeps this spot "error free".

Output looks like this - So i get the old and the new route. In this case routing changed to go through town instead of around it which is definitly wrong:

There is a lot of room for improvement. Currently you get links for visually inspecting old and new route. A way to improve would be to geometrically extract a bbox of change and match with changesets having modified that area.