Proposing an new speed_limit_implied=yes tag for roads with default speed limits where for some reason mapper was unable to be more specific

Sorry for a long post, but topic is tricky. If anyone manages to read entire one I would appreciate it.

Surveying speed limits is useful but horrifyingly complex.
Even seemingly clear cases, where numeric speed limit are signed, has problem with correctly marking where their applicability ends.

Aktron / Wikimedia Commons - CC-BY-SA-4.0

In some countries it may apply under next crossing - with extra fun what counts as a crossing for this legal purpose.
In some “until further notice” which can happen in multiple ways.
Many have also zone signs, which are cancelled by end zone sign and regular expiration for other signs.

You can get speed limits differing depending on lane, depending on vehicle type, different in forward and backward direction on the same way.
And combinations of that, and unlimited complexity of maxspeed:conditional (paging @minh_nguyen for some horrific but technically still applying speed limits).

Large speed limit zones may make surveying quite complex. Sometimes they can be quite confusing.

But overall signed speed limit or signed allowed unlimited speed is fairly doable.


But you also get cases which are worse. Where you have no signed speed limit, but it is left implied and falls back to default speed limit defined in legislation.

On borders of Poland following “helpful” default speed limit welcomes travelers:

it used to be even worse

It would be nice if mapper could answer “speed limit is implied here” if not sure which specific rule applies, rather than tag something wrong or incomplete or be unable to tag anything.

Obviously, ATYL applies but in my case I want to add support for such tagging in editor (StreetComplete) and I do not want to do this if OSM community disagrees.

And when making an editor there are some cases where asking user about exact speed limit is likely to result in nonsense answer, even after putting massive effort into interface guiding mapper.

For example in United States where speed limit is almost always signed with numeric speed limit signs. Signs such as “maximum speed 75” are basically always present. As I understand, speed limit falling back to default speed limits set by legislation are very rare. The problem is that it is not merely built-up / outside settlements distinction like in much of Europe. It is a bizarre mix of piles of rules, defined in various government levels. Due to their immense complexity and rarity how often they apply, noone bothers to learn them.
Just collecting all of them and monitoring law for changes works would probably require full time work of multiple people.
And that is not the worst part - many of them are poorly defined, and there is no way to ask mapper in way that anyone would answer it correctly.

For example, in Colorado: what is in legal terms threshold between “rural winding mountain road” and “rural open mountain road”?

And “Residence district” in Iowa that has own default speed limits on roads within it has specific definition.

the territory within a city contiguous to and including a highway, not comprising a business, suburban, or school district, where forty percent or more of the frontage on such highway for a distance of three hundred feet or more is occupied by dwellings or by dwellings and buildings in use for business

That is nonstarter to expect mappers to reliably apply that definition (in very rare cases where it applies)

And just burden on translators to translate that legalese is unreasonable.

See Default speed limits - OpenStreetMap Wiki for more gory details if anyone is interested. There is far more of such fun.

Asking mappers to distinguish those is just nonworkable, but tagging for “no signed speed limit here, default speed limits applies” is still possible for them and is helpful to record. And it is helpful as it points rare mappers interested in and capable of dealing with this rules to tag it somehow in more detail. And it also allows to avoid listing such roads as “speed limit missing, please survey”.

Poland has much simpler distinction but distinguishing reliably between PL:urban and PL:rural is far from easy. Among complications:

  • sometimes you need to survey extra kilometer to check whether urban/rural transition is signed
  • PL:urban is intended to be signed also in more densely populated village areas
  • sometimes it is not signed in dense built-up areas
  • sometimes it is signed in empty fields or forests

giving mappers option “no signed speed limit” would limit applying of wrong PL:urban and PL:rural, while not blocking mapping by more experienced mappers.

And if you are editing tags directly then have fun remembering that in Poland “dual carriageway with 2 or more lanes in each direction” and “dual carriageway with 1 lane in each direction” get different default speed limits, in Alaska road with asphalt or concrete surface get different speed limits depending on whether they are in an unincorporated area and so on.
Escape hatch in form of being able to tag “default speed limit of some jkind applies” would help.

The same applies in many more places.


So I am proposing speed_limit_implied=yes as new tag for that, but I am also open to better names if anyone see one.

In some areas it would exceptional and rare and in some it may be more commonly applicable. In some it may be likely and possible to fix, in some it may be unlikely to be replaced by more specific tagging.


I am asking this as I am considering working on maxspeed overlay in StreetComplete that would be displaying various already tagged speed limits, highlight missing ones and allow to add missing and edit existing.
Doing it is mammoth-sized task due to immense complexity. And I judge it to be not viable at all to implement properly without key to mark “no speed limit signs here”.
By “properly” I mean here that tagging when used by people who are not experts on speed limit law can reliably improve quality of OpenStreetMap data. Obviously, completely avoiding bad edit is impossible but it should be kept to a very low rate.

See Add a maxspeed overlay · Issue #4282 · streetcomplete/StreetComplete · GitHub for issue tracking this idea.


Alternative solutions:

(1) Do not implement speed limit overlay in StreetComplete if it requires such tagging, close feature request with rejection.

(2) Disable speed limit overlay by default, enable only in areas where even without using this tag it is likely that useful answer will be given by experts.
But given how much work such feature would require: outcome is probably the same as “give up on such feature”

(3) Ask local communities like USA whether they would welcome such tagging, and have speed limit overlay enabled only there and enable it by default.
It would be disabled completely in other areas.

(4) use different key, maybe even put it into maxspeed_type (maxspeed:type=speed_limit_implied ?). Start using maxspeed=implicit on roads (highway=lines)?

(4b) use fixme - but fixme is for freeform tags, and this info in some cases would be also useful to automatically deterministic


Would it be fine for StreetComplete to start using speed_limit_implied=yes ?

  • yes, it seems fine for StreetComplete to start using speed_limit_implied=yes
  • no, StreetComplete should not start using speed_limit_implied=yes
0 voters

(if you are against: commenting why would be really welcome)


disclaimer: I proposed something like that already in January 2021 on tagging mailing list, and there was no ethusiastic support. Either it is in fact a bad idea, or I explained it poorly or people who supported it had no real option to express support. Or there was other reason for that.
I was writing it partially based on feedback from that thread.


If anyone is still reading: thanks! Comments, votes, reactions are welcomed!

4 Likes

So what’s the difference with =implicit ? Btw maxspeed=implicit is only for the cancellation of signposted speeds back to defaults. source:maxspeed= is the most numerous use. It could be eg maxspeed:implicit= as maxspeed:type= may have conflicts, and other problems. This follows implicit=yes on type=restriction for banned turns,
But furthermore, isn’t “no signed speed limit here, default speed limits applies” for maxspeed:signed= ?

maxspeed=implicit is currently not used as attribute on road lines

maxspeed:signed is also basically unused, with 189 uses worldwide

the new tag (or using say maxspeed=implicit) would be used

(maxspeed:signed is not ideal as some default speed limits are indirectly signed and implied - for example “end of built-up area” sign in absence of other speed limit signage defines speed limit)

I support such a tag.

If there is no speed limit sign, surveyors should be able to enter that fact. I can survey that there is no sign a lot more easily than parsing local legislation in my mind to determine the legally allowed speed. There is an obvious analogy to maxheight:signed under bridges: obviously there is a max height, but if it is not signed, it’s a lot easier to tag that fact than to remember what is the locally legislated maximum vehicle height.

maxspeed:signed=no was my thought by obvious analogy to maxweight:signed or maxheight:signed, but I won’t be opposed to speed_limit_implied=yes

maxspeed:signed | Keys | OpenStreetMap Taginfo is barely used, so it is good to ask before a major editor starts inserting it widely

1 Like

I agree, that it would be great if SC could split up the task into two things, one where we just map maxspeed=implicit by expanding the definition of the maxspeed=implicit tag on roads which it affects.

And mapper with more knowledge or using the SC Expert Edition can then enable a second quest, which asks which explicit speed limit exactly applies it, so it can be mapped with a more specific maxspeed=* tag.

Using a secondary tag for maxspeed, like maxspeed:type=* however makes no sense, it adds redundancies, same for the misuse of the source tag (source:maxspeed=*), since there’s no information tagged here, it makes no sense to tag a “source” here.

1 Like

I’d find maxspeed:signed=no somewhat consistent with other uses, but I agree that it is fuzzy what exactly should count as unsigned. Another example other than the city limits one would be any kind of speed zone - 30-zones which might cover large areas, but also “school zones” (e.g. in United States) or, well, other signs which imply speed limits (sometimes, depending on legislation) such as cycle street signs.

Anyway, asking for clarification:

  1. Do you propose this tag to (potentially) be set on any way section where along that way section there is no (explicit) max speed sign?

E.g. there is a long road, split into three sections, in first section there is an explicit sign while in the others there isn’t because that speed limit is still valid => that tag could/would be tagged on the second and third section?

  1. If yes, do you consider that tag to be some kind of intermediate value that should be replaced by the proper value (maxspeed=…) by another mapper - like a fixme - or a tag that also signifies that there is no sign on that section (and therefore whatever applied before applies here too) and therefore would remain forever, on very many ways?
    Both definitions would come each with their own set of issues.
2 Likes

I expect that such section should not be tagged as having implicit default speed limit as explicitly signed numeric speed limit still applies.

the same in case where we have speed zone areas

maybe there is a better way to solve/tag this, I am not married to this specific tag definition and name - rather I am trying to solve the problem

depends on location:

in Poland it should be fixable by fairly doable survey (depending on location built-up area signs - start and end ones)

as I understand in some USA regions it can be obscure trivia which speed limit applies, and such cases would appear much rarer. There I expect it may stay effectively forever, even if in theory some more specific tagging can be invented and applied.

Once someone bothers to invent how to distinguish for example “rural winding mountain road” and “rural open mountain road”.

In other areas I expect a gradient between these cases - in some it can be expected to be tagged more specifically, in some small slivers of roads would stay marked with “weird things happen here with speed limits”.

I really would love to see a maxspeed overlay in StreetComplete and have been dreaming about this for a while now. However, so far, I’m not convinced that adding a tag for “no explicit speed limit here” is really helpful and/or necessary (but I might just have misunderstood some parts of the proposal).

Some thoughts/observations regarding maxspeed and a potential overlay:

  1. Speed limits are difficult to survey, since they typically originate at specific points which imply restrictions along a (possibly quite long) section of road or even an area. To determine the speed limit of a way, I need not just survey the way itself, but rather find the origin of the speed limit, which may be a distant speed limit or some sort of zone sign (like a city limit, zone 30, …). If I’m unlucky, I might be in the middle of a 1km road segment that consists of multiple OSM ways and is signed at both ends, implying speed restrictions along all ways. If I’m not aware of this, wouldn’t I tend to tag/answer speed_limit_implied=yes for a “middle” way? And even if I’m cautious and dutifully walk along a the entire OSM way, determining the absence of any speed limit signs, my speed_limit_implied=yes answer would still be incorrect. In this way, a maxspeed overlay would be quite different from how most SC quests and even overlays work. Whether an OSM way has a sidewalk or a bicycle lane can be determined conclusively by surveying the entire way. Maxspeed signs are easy to survey, but the restrictions implied by them are usually more tricky and require additional context.
  2. From my experience mapping speed limits using the SC maxspeed quest in Germany (overall pretty good maxspeed coverage, in urban areas mostly large zone 30 with maxspeed=50 on main roads), the biggest benefit of having an overlay would be context. What is the speed limit at this caul-de-sac in a pretty off-the-path residential area? It is probably within a maxspeed=30 zone, but to determine this conclusively I’d need to find the verge of the (suspected) maxspeed zone, and technically also survey along the entire circumfence to determine that my road is indeed within this maxspeed zone. An overlay would give me useful information by visualizing the maxspeed data of surrounding ways, helping me as a mapper to answer accurately even if I did survey just the OSM way I’m being asked for.
  3. To me, it seems like speed limit information is one of the more consequential information we collect in OSM which has fairly high standards regarding accuracy. Perhaps, a maxspeed overlay should be tweaked towards accuracy rather than completeness. Most overlays currently display missing data as a “gotta straight go there and map this”-red, which could encourage low-confidence and possibly incorrect maxspeed interpolations. To me, it seems an idea worth investigating whether the absence of maxspeed data could be displayed in a neutral color. (Similar to how the bicycle overlay displays both highway=footway+bicycle=no and highway=footway without bicycle tag the same way.) – I might be wrong about this, but wouldn’t it be fine for an overlay to not distinguish between missing data and the “there’s an implied speed limit here” case?

To me, a maxspeed overlay seems both extremely helpful and extremely difficult to implement in a way that is maintainable and correct. I’m really glad you are investigating this @Mateusz_Konieczny!

1 Like

What should be tagged by mapper in Iowa if they discover that there is no signed speed limit for some stretch of a road?

Should they check is it “Residence district”?

Note that it has

the territory within a city contiguous to and including a highway, not comprising a business, suburban, or school district, where forty percent or more of the frontage on such highway for a distance of three hundred feet or more is occupied by dwellings or by dwellings and buildings in use for business

definition. Is it really viable to survey?

Other possibilities include “Institutional road”

“State park, state institution, and other state land road system” consists of those roads and streets wholly within the boundaries of state lands operated as parks, or on which institutions or other state governmental agencies are located.

and “business district”

“Business district” means the territory contiguous to and including a highway when fifty percent or more of the frontage thereon for a distance of three hundred feet or more is occupied by buildings in use for business.

and “school district”

“School district” means the territory contiguous to and including a highway for a distance of two hundred feet in either direction from a schoolhouse in a city.

and “residential district”

“Residence district” means the territory within a city contiguous to and including a highway, not comprising a business, suburban, or school district, where forty percent or more of the frontage on such highway for a distance of three hundred feet or more is occupied by dwellings or by dwellings and buildings in use for business


See Default speed limits - OpenStreetMap Wiki for more cases like this in other areas and citations.


if mapper is supposed to distinguish those to be able and not allowed to mark “some kind of implied speed limit” then I gave up - and consider implementing speed limit overlay impossible for such cases.

I guess that limiting speed limit overlay to limited areas known to have “only” speed limit zones and signed built-up areas etc is still a possibility.

All three of these sentences are generally correct, so the problem of “I’m on the ground and can’t find an applicable speed limit sign,” is much less of a problem than, “I’m in my armchair and I can’t find any street-level imagery.”

Most speed limit signs match some speed limit in state or local law. This is also true of a sign at the city limit explicitly indicating the speed limit “unless otherwise posted”. The purpose of the sign is to keep the driver from needing to understand the complex nuances of speed limit laws, and to eliminate their defense that they had no way of knowing which speed limit applies when they get caught speeding.

Without the signs, there would be a lot to know if the laws can suddenly change multiple times as you commute to work:

There’s a longstanding understanding in the U.S. that the effective numeric maxspeed=* can be based on something other than a sign, such as a government database or a law plus a heuristic. When this happens, we need to be able to distinguish it from a surveyed speed limit somehow, whether it’s maxspeed:type=*, source:maxspeed=*, or maxspeed:signed=*.

If you airdrop a surveyor into the middle of a long stretch of road, ideally they could contribute a “no speed limit sign found here” even if they don’t feel like walking a quarter mile to the nearest intersection. I don’t think this is the same as saying that the road’s speed limit is unsignposted. The information could be signposted some distance away and it’s no less valid. How about a more literal no:traffic_sign=maxspeed on the roadway?

1 Like

how far away from traffic sign it would be?

what if someone later discovers that it is road in a large speed limit zone? should it be removed or kept?

That’s the thing: it can be arbitrarily far away. I think this will also depend on the design of the quest. If you ask someone whether this street has a signposted speed limit, they might say no, because you can only get to the street after passing a speed limit sign on some other street. That still applies, because a speed limit doesn’t automatically reset every time you make a right turn.

no:traffic_sign=maxspeed (or no_traffic_sign:maxspeed=yes if you like) would simply mean that no speed limit sign is physically present along the roadway, even if one farther away applies to the roadway. This information would be of no use to data consumers, but it would tell another mapper that they shouldn’t distrust the maxspeed=* just because they see no sign on the spot.

1 Like

I was rather thinking how far away traffic sign would need to be - 1 km away? 500 m away? 4 km away? 100 m away? to qualify for no:traffic_sign=maxspeed

Not along this specific OSM way? But then you have places where people mapped turn lanes and roads are in 20m chunks.

1 Like

I would imagine collecting speed limit information in a SC overlay more like adding parts to a puzzle. You won’t be able to start with any arbitrary piece (at least, this will be extremely difficult), but it should be easy to add to what is already finished, as you got more context there and the number of missing parts gets smaller and smaller. So, the short answer to

is: Maybe just nothing, and wait for other puzzle pieces to give more context that allow for a more substantial answer. Why couldn’t a user say: I’m not sure, and the overlay does nothing? But keep in mind, I don’t know very much about US speed limits, and this perspective fits probably best for countries with comparatively straightforward speed limit rules. Perhaps in the US (and maybe other countries) a tagging the absence of speed limit signs could be helpful.

if speed limit is unsigned and left implied, then there is non additional context to be found

As i am a maxspeed extreme mapper, and i dont get the argument.

If the mapper is not shure about the speed limit → dont map it.

If he knows the speed limit we have more then enough tags to descripe what the speed limit is. Be is “source:maxspeed”, “maxspeed:type”, “maxspeed” etc.

And “implied” is - “There is some zoning concept - be it rural/urban/zone30 something but i dont know which one”?

A fuzzy “implied” is next to useless for any usage. You cant derive speeds/travel costs in A*/Dijkstra speak from it. You cannot show the user anything useful in a Navigational app. So what is it good for?

I typically tell mappers trying to fix maxspeed to tag individual signs for the area. After you have all the signs, mapping the maxspeeds/zones is pretty easy.

Flo

2 Likes

it is useful for marking that nonexpert surveyor should not be bothered with going there to survey speed limit info

1 Like

Since we both recognize the U.S. as a pathological case, I’ll point out that we haven’t adopted maxspeed=implicit here because it preempts any numeric value. Shifting the burden to data consumers would be counterproductive, because they’d face even more challenges interpreting the law. To the extent the community can figure out the applicable speed limit, we’d like to save others the trouble of figuring it out for themselves.

We should only map a negative if there’s a clear use case for it. noname=yes and similar tags are popular because they enable very useful validation rules. I promote not:building=yes and demolished:building=yes in order to warn armchair mappers to think critically and warn data consumers that they shouldn’t backfill buildings from lower-quality sources.

Apart from StreetComplete’s interaction design, I don’t think the absence of speed limit signs on the spot has such a clear use case. What would a mapper on the ground be trying to communicate to data consumers or other mappers? It isn’t like the No Traffic Signs sign, which would be some sort of hazard=*. It’s more like: “StreetComplete asked me for the speed limit and I can’t easily tell.” MapRoulette has a similar Too Hard button, but it stores the response in its own backend instead of the OSM database.

Unfortunately, we see lots of Notes “SC asked about this & I can’t answer”, so apparently the thing to then do is raise a Note to ask somebody else to check it :roll_eyes:

I’ve never used SC, but based on that, I think it needs a “Cannot be answered” option :thinking:

2 Likes

it has one, you can also not answer and hide for yourself without leaving a note

and yes, there is also an option to leave a note and it clearly states what will happen

if note is useless then it should be closed, if it keeps happening on larger scale reporting problem on issue tracker is welcome

For example major motivation for Things overlay in StreetComplete was to stop “here is a trash can” notes that were quite useless. Cycleway quest got redesigned to stop flood “no cycleway here” notes and so on.

maybe attaching photos should be pushed harder so notes are more likely to be useful?

(and if someone sees flood of pointless notes from mapper but are scared to close them, you can try sending them to me - I mass closed some such cases)

4 Likes