In GB the rule says that you can cross a solid line to overtake a slow moving vehicle travelilng at 10 mph (16 kph) or less.
So the rule doesn’t mention agricultural vehicles, but the speed they are travelling at.
In the past this rule could have been read as agricultural vehicles, but modern tractors are travelling at around 50 kph, so the rule doesn’t really apply to agricultural vehicles anymore.
If we also treat ‘overtaken’ as a property like ‘weight’, would it be possible to lump bikes and motorcycles together? overtaking:conditional = yes @ overtaken (bicycle;motorcycle)
I don’t know if this conforms to the specs, but it looks reasonable (if it means bicyle OR motorcycle and not “AND”)
or would this one work? overtaking:conditional = yes @ overtaken:bicycle;motorcycle
this doesn’t work, I think it should be
overtaking:conditional = yes @ overtaken:bicycle; yes @ overtaken:motorcycle
In general placing values in keys is bad, making that two is bad^2.
If the data consumer can’t handle the presence or absence of “lanes” in the key, then I don’t see how they will be able to even remotely consume -any- of the proposals here.
I agree, but that’s not a value, it’s a transport mode that restricts the main key to a certain range of vehicles.
The problem arises when there are both ‘|’ for lanes and overtaken parts in the same value. Parentheses are not required in the conditional syntax, so parsing that will be a real issue.
For efficient tagging we should introduce the category of “single_tracked” vehicles, which is already used a few times. Otherwise we would have to list all the vehicles independently: bicycle, motorcycle, small_electric_vehicles…
Per my first comment, overtaking=* would be explicitly limited to double tracked vehicles in Germany and many other countries, as this is how the key is already used. A possible ban of overtaking by single tracked vehicles would have to be tagged explicitly as overtaking:single_tracked=no.
This gives us:
overtaking = no + overtaking:overtaken:single_tracked = no
Both tags apply to double tracked vehicles by default, and the extra tag adds another ban on top based on the vehicle overtaken.
overtaking = no + overtaking:overtaken:agricultural = yes
Both tags apply to double tracked vehicles by default, and the extra tag lifts the ban in case the overtaken vehicle is a slow vehicle (in Germany, maximal allowed speed due to construction of the vehicle of 25 km/h)
Then you need to understand that it is only for the categories mentioned in the legislation at road sign F1
Translated: "Prohibition for motor vehicles to overtake each other.
A sidenote: legislation “motor vehicles” is different then OSM “motor_vehicle” often wrong translated.
"all motorised vehicles except mopeds, bicycles with pedal assistance and disabled vehicles intended to be propelled other than along rails
A “tractor icon” used in legislation means a collective category on undersign but when on the undersign the text is written “overtaken tractor allowed” means only tractors. “brommobiel” is a legislation category, a microcar, only maxspeed 45 km/h but it is not a moped, it belongs to legislation “motor vehicles” and must follow the rules of cars by legislation rule. That is why it is mentioned here, allowed to overtake, microcar.
I am interested in how this :suffix method works out.
This is not so much a question about how to tag overtaking rules, but how to map existing classes of vehicles to OSM transport mode tags. The tagging would be straightforward if these categories of vehicles existed in OSM, but I think this should be discussed in a separate place.
That would be covered with conditional tags - we only need to define a term that refers to the speed of the overtaken vehicle: overtaking:conditional = yes @ (overtaken_speed < 20 km/h)
Because the sign only applies to double-track motorized vehicles. If you then add overtaking:overtaken:single_tracked=no, how is a processor supposed to know how to prioritize this with regards to the existing tagging? Yes, it could work, if the overtaking key, by default, only applies to double-track motorized vehicles, but then we have a lot of assumptions based on the country the tag is used in.
I can see why you want to keep the overtaking=no-tagging, but if the meaning of this changes based on the country, I don’t think it’s ideal. Might as well just tag traffic_sign=DE:276 instead, because that’s what overtaking=no means then. I’m missing the interpretation of the sign into actual tags. Also, overtaking:overtaken:single_tracked kinda collides with the usual suffix-meaning of transportation modes.
I can be convinced that it’s okay to have different meanings to a tag in each country, because it wouldn’t be the first time. But then I suggest a more compact syntax, like overtaking=no / overtaking=strict / overtaking=agricultural. Yes, in this context, strict is more no than no (you get the idea). I dislike this, but it’s at least tagging-friendly.
I won’t insert another category in between. It could be *:condiitonal= @ (tracks=*) similar to maxweight:condiitonal= @ (axles > *) or charge:condiitonal= @ (axle = *) . There are 92 maxaxles | Keys | OpenStreetMap Taginfo and 894 hgv:minaxles | Keys | OpenStreetMap Taginfo .
Aren’t trikes three-tracked? Quadbikes two-tracked (irrelevant)?
That might be an idea, if we can make sure that the number of different options is not too large. In DE we essentially have 4 different options that are used regularly if I’m not mistaken.
I think we simply have to live with the fact that legislation varies a lot between countries. The same holds for other basic definitions, e.g. what counts as hgv, what is the weight limit?
Not so much, the transportation mode is typically added directly after the main key it refers to. The presence of the subkey “overtaken” makes the “vehicle” refer to the subkey instead of the main key which is exactly what we need for this tag.
Backside car icon is a collective category in my legislation. This include motorcycle. (as written in ealier post)
It is strange for me to say “Both tags apply to double tracked vehicles by default”
single_tracked includes motorcycle.
The tag is “overtaking” and “apply to” refers to the vehicle doing the overtaking. These are double tracked by law. The vehicle overtaken is single tracked, but this is not the vehicle the tag applies to, just a innocent bystander, so to say.
My gut impression is, that SimonPooles propsitions would offer the most flexible tags.
In a daydream I would think about
a list of existing classes of vehicles (to be discussed elsewhere, like mueschel suggested),
and a tool similar to this one for speed limits, where we, in our case, put in the source:overtaking=traffic_sign:DE:276 (or something like this), and it spits out the correct tagging for that specic sign.
This question gives me think about. The correct meaning, expression of the sign and the written prohibition “Prohibition for motor vehicles to overtake each other.” this includes a motorcycle, so the backsidecar stands for also a motorcyle.
“motor vehicles” legislation: “all motorised vehicles except mopeds, bicycles with pedal assistance and disabled vehicles intended to be propelled other than along rails”
A motorcycle can not overtake a motorcycle.
frontside car
legislation translated: “Closed to motor vehicles on more than two wheels”
a OSM key: double_tracked_motor_vehicle
not a motorcycle included.
It just shows that the legislation in each country defines the seemingly same sign different.
Wikipedia has a good summary on this:
The no-overtaking-sign looks a lot the same in most European countries, but its legal description differs between countries. Depending on the text of law, in some countries in Europe the no-overtaking-sign bans overtaking only for vehicles that have three or more wheels, effectively granting motorcycle drivers the freedom to overtake cars even past the no-overtaking-sign, where the same sign rules out overtaking for all types of vehicles in neighboring countries. In other jurisdictions, like the Netherlands, overtaking vehicles that have only 2 wheels is not forbidden, despite the no-overtaking sign. The law text ‘overtaking vehicles on more than two wheels’ allows for overtaking bicycles, of which there are many on Dutch roads.
OT: (proper) motorcycles are legally not single track vehicles and are allowed to, actually have to, use the full lane.
Corrigenda: seems as if the 1st bit is not correct at least in the countries I checked. In particular, for unclear reasons, they are lumped in with ‘slow’ vehicles as being allowed to be overtaken when overtakkng is forbidden which doesn’t make any sense at all.
With all these suffix in the key, it become worse to express it in a style, to get a hint.
If conditional is used it is more easy, presenting there is a conditional,
(experimental with legend on non tagging zoomlevel)