After getting routed through a tiny town with 20 MPH roads last night, I have decided to add some maxspeed information to my local streets. There are very few streets with this information.

So, my question is whether I need to enter this tag for all streets, or are there some defaults that exist already? For example, residential streets have a default speed limit of 30 MPH unless otherwise posted, by law. Does this default exist within the OSM data? Or is it required to put that into every residential street? That would seem like a lot of work. What have other people done who have undertaken this effort?

asked 10 Sep '16, 20:10

mtc's gravatar image

accept rate: 0%

Many people tag all speed limits explicitly. If you don't do that, you will depend on the navigation software. Not all software based on OpenStreetMap data adds those defaults in case they are not set. There is no such thing as "a default speed limit per country by OSM", in the end it's the developer of the navigation software that has to fill in the blanks.

permanent link

answered 10 Sep '16, 20:44

escada's gravatar image

accept rate: 21%

I wish there was: A while back before I became disenchanted with the "bike shedding" and other issues with the tagging mailing list, I suggested that there ought to be a way to tag administrative boundaries with default information including default speed limits.

A data consumer could then look through the administrative areas (local, regional, state, country, etc.) with the most local taking precedence and determine a reasonable assumed value. Seemed to me that putting a hand full of default speed tags on the administrative border for say, California, would be preferable to tagging maxspeed and maxspeed:hgv a few million highway segments. But it was for some reason shot down as hard to maintain and being confusing.

So I create my own routing.xml file for OsmAnd to have it actually work well in my area. And I slowly add speed tagging to roads that I drive.

permanent link

answered 10 Sep '16, 21:36

stf's gravatar image

accept rate: 18%

opening_hours.js uses nested tables of the names that nominatim returns to store information associated with admin boundaries. So for instance, California is stored in ['us']['California']:

Doing it in one file probably isn't the right thing, but a similar approach might work out.

One benefit is that you could have profiles simply by having different data trees for each type of vehicle, you wouldn't have to have tags on the admin boundaries for each type of highway * each type of vehicle.

(10 Sep '16, 22:53) maxerickson

I can appreciate your frustration. If the people managing the database actually want each road contain the data of maxspeed, then why is it not added programmatically? Surely it is easier to do a import of maxspeed="30 MPH" on every residential road, than have a herculean effort of typing tag-key-combo that into map editors for every road in the database.

On further consideration of my original question, I am planning on mapping maxspeed for non-residential roads, since those are the primary ones that will be used by routing software. I have been reviewing the ITO Speed Limits Map, and that method is what seems to be done in other locales in USA.

(11 Sep '16, 03:21) mtc

I believe the reason that the non-residential roads are more likely to have maxspeed tags in the United States is simply that it is more likely that a mapper will have driven them. That is my behavior and from what I observe when I come into an area new to me that seems to be and explanation of the tagging I see.

I'll tag all the speeds for the roads I drive while commuting to work, running errands, etc. And I will almost never side track into residential areas simply to gather speed limits. The residential road speed limits I've collected were mostly a side effect of walking those street to gather addr:housenumber data.

(11 Sep '16, 04:05) stf

@maxerickson "each type of highway * each type of vehicle" isn't really needed, that would only be the worst case. Instead one would set a default speed for urban, rural and motorways for all vehicle types and then just add a list of exceptions which should be fairly small.

(11 Sep '16, 07:50) scai ♦

Re 'Surely it is easier to do a import of maxspeed="30 MPH" ': to do that would negate the hard work of people who've actually surveyed which speed limits are 30mph (and which are not). As you yourself has said it's easy for routers to work with regional defaults.

(11 Sep '16, 10:06) SomeoneElse ♦

I assume the import process can skip entering data for highways which have an existing maxspeed=* entry. Am I wrong?

(15 Sep '16, 00:01) mtc

It is highly recommended that an import or a mechanical edit does not alter the values that are already in OSM. Maybe there is indeed an exception added by a mapper that did a survey. This should always have precedence over automatically generated values without local survey/knowledge.

(16 Sep '16, 14:59) escada
showing 5 of 7 show 2 more comments
Your answer
toggle preview

Follow this question

By Email:




Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text]( "title")
  • numbered list: 1. Foo 2. Bar
  • basic HTML tags are also supported

Question tags:


question asked: 10 Sep '16, 20:10

question was seen: 1,797 times

last updated: 16 Sep '16, 14:59

powered by OSQA