Documenting and standardising maxspeed:reason

One thing I’ve slowly started to wonder is if we should tag the reasons for speed restrictions.

The reason I mention this is because a look into taginfo reveals that the reasons are specified in the local language, primarily in German, Polish or Chinese instead of as expected in English and so it would greatly benefit from having standardised values (something we can collect in this thread). In addition, it’s also sometimes used to specify a speed zone even though we already have the long established zone:maxspeed=*, maxspeed:type=* and source:maxspeed=* tags (i.e. any sort of speed zone in maxspeed:reason is considered deprecated), documenting also the use of deprecated values.

In addition, parking restrictions also support a reason for why a specific restriction exists (including unsigned restrictions but that’s past the point) so I see a reason to do the same for maxspeed=*.

Related discussions: Maxspeed:reason nicht dokumentiert? (in Germany)

As pointed out in the other thread, verifiability seems a major issue for this tag. I would prefer to document this tag in wiki as recommended to be avoided in favour of verifiable tags like maxspeed:type, source:maxspeed, etc

The value along the A4 in Poland says “missing shoulder / breakdown lane”, that might well be the reason, but I’m not sure it’s verifiable in OSM sense, and I’m also not sure if adding it in OSM is actually useful to anyone. What other reasons would we tag in OSM?

I would be willing to make exceptions for “unsigned but according to local registration” as seen in the street parking wiki page, but I’m not sure it really has a lot of value to include it.

1 Like

parking:*:restriction:reason=* values mainly correspond to signposted reasons. I made the case for this key as an alternative to stuffing commonly signposted reasons like fire_lane and loading_zone in the same key as the restrictions themselves. In some legal systems, like in the U.S., regulatory signs have to include such indications to bolster their legal authority. For other regions where this is an uncommon characteristic of traffic signs, we can be flexible and allow other sources, but I don’t think of it as carte blanche to editorialize or speculate.

Judging from taginfo, maxspeed:reason=* seems to have developed in a manner similar to traffic_sign=*: a mishmash of OSM-style keywords, freeform text, and country-specific codes. (The values that begin with “R” or contain Chinese characters seem to identify railway workrules in China.) Ideally, we would find machine-readable replacements for any freeform text values, to help data consumers impart meaning from this information.

So far, the only value of maxspeed:reason=* in the U.S. has been school. The MUTCD and its variants have special speed limit signs for school zones and work zones. zone:maxspeed=* is intended to cover these cases, but it might be too focused on machine readability, since the specific speed limits and conditions within a school zone can vary from state to state, from city to city, or even from school to school. Similarly, a work zone’s speed limit depends on the original speed limit and other factors, not just geography.

I don’t anticipate many other values becoming common here. source:maxspeed=* or maxspeed:type=* would already cover the general speed limits indicated on signs at the city limits or state line. In most other situations, the MUTCD would instead call for an advisory speed sign, which we’d tag as maxspeed:advisory=* with hazard=*:

1 Like

As a short hint from Taginfo:

  • source:maxspeed 2 476 149
  • maxspeed:type 1 117 107
  • zone:maxspeed 312 822

zone:maxspeed is some niche but is completely covered by maxspeed:type and/or source:maxspeed e.g. “DE:zone30”

I declared maxspeed:type the winner a couple years ago as that what streetcomplete uses - so in the long run we’ll see maxspeed:type grow rapidly and beeing added everywhere. Germany used to be source:maxspeed territory until streetcomplete kicked in.

This can be seen in the growth graphs in taginfo - maxspeed:type has a much steeper growth whereas source:maxspeed is linear for a couple years.

Flo

1 Like

most places had been source:maxspeed territory, even since streetcomplete pushed their vision on the global tagging it is still leading.

Your reply implies I only intend to use it for unsigned reasons when I left it open (of course, the main intention is to tag signed reasons). However, at least here in Germany, the legality of signs are independent of reasons, what matters primarily is black on white with a round, red border, not whether a sign tells you it’s because of school nearby or for noise control for the neighbourhood.
This means, if a road has a signed top speed of 30 km/h, it doesn’t matter if there is a sign telling the drivers that it’s for noise control or not, it’s both maxspeed:type=sign. maxspeed:reasons=* simply allows you to also specify for why the maxspeed exists.
(Now, it’s apparently a different story in the US in which the reason may also establish an actual traffic zone.)

It depends on whether there is a sign which tells driver that there is no shoulder alongside the maxspeed.

If you have the sign, you can map Zusatzzeichen as traffic_sign=*, but personally I wouldn’t add all the contents of the sign also to the way. If it’s verifiable and you want to, I’m not going to be opposed

To elaborate, the authorities don’t arbitrarily post these reasons to describe the history behind the sign. When you see a reason on the sign, it very likely indicates that law enforcement will take any infraction more seriously. For example, fines for speeding are doubled in work zones, and tolerance for speeding is reduced in school zones. If an accident occurs, the stated reason will affect legal and financial liability. Without the signposted reason, any enhanced enforcement could be easier to challenge. So as a practical matter, I’d expect a navigation application to present the speed limit with more urgency if accompanied by a reason.

For parking:*:restriction:reason=*, there are a number of other considerations besides fines. A loading zone comes with implicit rules about exactly how and when to park, how to load and for what kinds of cargo – information that may not be readily available to the mapper. Violating a no parking restriction at a bus stop or fire hydrant will likely get you towed, with a higher fine and demerits on your permanent driving record. If you park on the street on street cleaning day or during a snow emergency, you could forfeit your parking permit. On the other hand, violating a no parking restriction on a bike lane… might not have any consequences at all in some places.

To elaborate, the authorities don’t arbitrarily post these reasons to describe the history behind the sign. When you see a reason on the sign, it very likely indicates that law enforcement will take any infraction more seriously. For example, fines for speeding are doubled in work zones, and tolerance for speeding is reduced in school zones. If an accident occurs, the stated reason will affect legal and financial liability. Without the signposted reason, any enhanced enforcement could be easier to challenge. So as a practical matter, I’d expect a navigation application to present the speed limit with more urgency if accompanied by a reason.

in Germany these reasons on signs may sometimes give indications how far the restriction or hazard stretches, e.g. a speed limit with the addition “two sharp bends” will automatically be lifted without any further signs required.

On the other hand, a speed limit is a speed limit and sanctions for speeding do not depend on the sign, they depend on the zone though, but there are only 4 zones (IIRR), living streets (walk), 30 kph zone inner urban, other inner urban zones (50kph) and the rest (100kph), they are not further differentiated.

Can this already be tagged as hazard=curves or similar? It’s basically the same situation as in the U.S., except that Germany has eliminated advisory speeds in favor of legal speed limits.

We have advisory speeds only on the motorway:

They do have some legal implications when it comes to insurances, but you are not forbidden to drive faster than the advisory speed limit.

Also, what @dieterdreist is referring to, there are 2 ways for automatically cancelled speed limit.
If the speed limit sign is below a caution sign, then the speed limit only applies as long as the signed situation prolongs.


This one is automatically void after the curve. And yes, it’s not an advisory speed limit, because in a country where people are known for driving too fast, they wouldn’t work.

The next one is only valid for 800 meters and automatically void afterwards:


You will usually find a


after 800 meters. It’s not strictly required if I remember correctly, but don’t take my word for it.

We also have “reason” signs that can go under the speed limit, but they have no legal impact:


Contrary to popular belief, this does not become invalid after you pass the kindergarten, and I never understood why they add these reasons, because a lot of people belief that they are auto void after the reason is gone …

Personally, I wouldn’t tag these as reason, but use your proposed hazard=curve + max_speed=30. That makes a lot more sense if it can be applied. As for the kindergarten one … I never added these, except in traffic_sign where it’s a DE:1012-51 :wink:

1 Like

Actually I would tag the kindergarden as hazard=children, source:hazard=sign where the Italian has 2 in circulation

Italian code IT:II.23 and Vienna Code A.13

image

The orange sign with childlike silhouettes of children indicating there’s a schoolbus stop Italian code IT:II.304, no direct Vienna equivalent.

image

These are often, if not always signed both directions on non-oneway roads. I also tag these with the same hazard/source:hazard tags. Here it’s not like the US… don’t you dare passing a schoolbus when the side sign is out (at least that was the rule still in the early 2000’s) .The color seems to be internationally agreed upon as yellow. They always are accompanied by a supervisor who gets out first at every stop.

Many a school also is accompanied by crossing tables which go with a blue sign and a text to say the crossing is raised. Italian code IT:II.303 and Vienna E.12a

image

JOSM knows all these codes and shows the right graphic. Still wanting to make a custom preset with a multi pick list of the top 20-25 sign. Never a typo.

And if there’s no volunteer supervisor, the traffic cops come out during school’s out, There’s a few places here where drivers like to blow down the hill.

/end

We have the first one as well :slight_smile: Kindergarten was just an example. We also have “noise control” (usually stricter speed limits during the night), “school”, “retirement home”, and “hospital”. So not all of these correlate with a “hazard”. And while “kindergarten” might be interpreted as hazard=children, it’s usually more like hazard=stressed_parents :wink:

Yes, an example that confirms the disconnection of reasons and restrictions: there are also speed limits for “Luftreinhaltung” (controlling air pollution), and some people driving eletrical vehicles had been speeding, arguing they wouldn’t pollute more when driving faster — were fined, went to court and lost.

There is also a reasoning from the ministry of transport: doc17384020210526103100_geschwaerzt.pdf in request „Geschwindigkeitsbegrenzung „Luftreinhaltung“ für E-Autos“ - FragDenStaat
basically they say it’s for equity, and for safety (and “it could confuse people”). From this context it also seems that in Austria the situation is inverted, electrical vehicles are exempted from such speed limits.