OpenStreetMap

I have been checking all Danish motorway,trunk,primary,secondary, and tertiary roads without a maxspeed tag using geotagged photos (Mapillary, Kartaview, Bing). The maxspeed status now is (distances in km):

Maxspeed stats

  • motorway :: missing maxspeed: 0 , total: 2586 , pct with maxspeed: 100.0
  • trunk :: missing maxspeed: 0 , total: 502 , pct with maxspeed: 100.0
  • primary :: missing maxspeed: 0 , total: 2771 , pct with maxspeed: 100.0
  • secondary :: missing maxspeed: 10 , total: 6531 , pct with maxspeed: 99.85
  • tertiary :: missing maxspeed: 5421 , total: 23739 , pct with maxspeed: 77.16
  • unclassified :: missing maxspeed: 24821 , total: 32060 , pct with maxspeed: 22.58
  • residential :: missing maxspeed: 20866 , total: 27987 , pct with maxspeed: 25.45

I believe this is really good. Most routing decision will have almost optimal data. Even if the first or last part of potential routes are short residential or unclassified ways with unknown maxspeeds, it will in most cases not affect the result because there are no alternatives.

Motor-vehicle users of OpenStreetMap apps will most of the time be on roads with known max-speeds. I know this because it is getting quite difficult for me to get to ways without maxspeed to produce geotagged photos. I download a GPX file with ways without maxspeed to OsmAnd so that I can try to photograph them if it not too much out of the way.

Quality

Of course having maxspeed tagged on many roads is only valuable if the tagging is correct. I did find some incorrectly tagged max-speeds. This was mainly due to:

  • Old wrong tags (ca 2008-2014). A lot of rural ways was tagged with maxspeed=80, even though they did pass urban areas with 50 max speed. This is less of an issue now as we have more geotagged photos, better aerial photos, etc.
  • Not splitting ways. There were a few users that would update max-speeds without splitting ways properly at relevant signs (2015-2017). Users of early versions of StreetComplete also did this. This is not really happening nowadays, but there a some old ways with wrong max-speeds for this reason.
  • Misunderstood tagging. Especially confusing maxspeed and maxspeed:advisory and city-limit tags. This has also improved.
  • Outdated tags. Speed limits have been changing a lot the last few years. Mostly lowered from 50 (DK:urban) to 40. Or from 70 signed to 60. This is mostly happening in urban areas where we have most active mappers and most photos, so OSM is probably not too bad, but we need to focus on this.

All in all, I believe that max-speed values for Danish ways are very accurate.

Comparison with other maps.

From being a passenger in others cars, I have noticed that some other maps / navigation systems seems to have max-speed for all roads. But the max-speed if very often just wrong. Often they are outdated (and maybe the map are not up-to-date, maybe because it is costly). I suspect that there is also some guessing involved, I.e., assuming 50 km/h in residential areas or on residential ways and 80 elsewhere.

I am confident that for Denmark OpenStreetMap has much better speed-limit data than any other map/database.

Other places than Denmark.

Check max speed coverage for you own country or region.

I will be driving in other European countries this month and I do appreciate OsmAnd checking that I am not going too fast.

DK overpass max speed stats

Maxspeed processing

Location: Brageland, Nordfyn Municipality, Region of Southern Denmark, Denmark

Discussion

Comment from jonsger on 7 November 2023 at 09:37

Nice work and blog post. I had a look at “my area” and there are quite some roads missing the “maxspeed” tag. Especially in the more rural villages.

Comment from emvee on 12 November 2023 at 16:30

I did an analysis for the Netherlands using osmium and some python code:

motorway :: missing maxspeed: 62 , total: 13163 , pct with maxspeed: 99.5 trunk :: missing maxspeed: 50 , total: 8224 , pct with maxspeed: 99.4 primary :: missing maxspeed: 446 , total: 45602 , pct with maxspeed: 99.0 secondary :: missing maxspeed: 2055 , total: 67339 , pct with maxspeed: 96.9 tertiary :: missing maxspeed: 7817 , total: 108843 , pct with maxspeed: 92.8 unclassified :: missing maxspeed: 62620 , total: 219803 , pct with maxspeed: 71.5 residential :: missing maxspeed: 78225 , total: 361891 , pct with maxspeed: 78.4

In the Netherlands all traffic signs are available as open government data, so that might explain the pretty good numbers.

Comment from emvee on 12 November 2023 at 16:34

Not sure why the formatting for the stats in my earlier reaction was all on line (it was not in the edit window and I can not longer edit my earlier reaction), but these are the stats in better readable format:

  • motorway :: missing maxspeed: 62 , total: 13163 , pct with maxspeed: 99.5
  • trunk :: missing maxspeed: 50 , total: 8224 , pct with maxspeed: 99.4
  • primary :: missing maxspeed: 446 , total: 45602 , pct with maxspeed: 99.0
  • secondary :: missing maxspeed: 2055 , total: 67339 , pct with maxspeed: 96.9
  • tertiary :: missing maxspeed: 7817 , total: 108843 , pct with maxspeed: 92.8
  • unclassified :: missing maxspeed: 62620 , total: 219803 , pct with maxspeed: 71.5
  • residential :: missing maxspeed: 78225 , total: 361891 , pct with maxspeed: 78.4

Log in to leave a comment