Overtaking:be_overtaken:*=yes/no

Well / or ^ would work too if you believe that the conflict is likely. Though / is used in opening hours, but as the conditional restriction grammar doesn’t contain an element indicating that the condition is an OH expression you need to parse them and check if they are valid in any case to be sure.

The advantage of using just 2 keys to model the restrictions contrary to keyflation, is that you can retrieve all relevant information in just two values and parse at leisure.

Assume for example you want to retrieve the relevant data for a truck, with the overtakng:v1:overtaken:v2 scheme, then you need to retrieve/inspect at least

overtaking:hgv:overtaken:v2
overtaking:motorcar:overtaken:v2

for v2 being one of hgv, motorcar and single_track so a total of six keys just to cover some of the combinations mentioned in this thread. And maybe another three keys for overtaking:overtaken:v2 …

For efficient tagging we should introduce the category of “single_tracked” vehicles, which is already used a few times

yes, there are already 8, 4 on nodes and 4 on ways. It could also be “stv”, single track vehicle, among psv and hgv it would feel welcome.

It’s a valid point to not have too many keys, but finding them by a software is always a lot more difficult than the number of keys. Either your software is simple and only reads the most basic tags, or there’s no way around retrieving all overtaking* keys and scanning through all of them to see which one applies to the situation you try to evaluate. Your vehicle is (typically) part of 3 or 4 transportation modes, there’s backward/forward, lanes and conditional. That’s already 32 different keys that might be applicable in any given situation.

Obviously the list of actually present tags will always be small enough to not cause any processing time issues. But the list is way too long to explicitly ask for exact keys.

I agree to the arguments given by @nadjita. It would surely be better to have a tagging scheme for overtaking which does not imply knowledge of the national regulations in view of overtaking default values. Again I believe in most cases it is not too complicated to tag the concrete stipulations using the system proposed by @mueschel:

image

overtaking:motor_vehicle:overtaken:double_tracked_vehicle=no
overtaking:motor_vehicle:overtaken:single_tracked_vehicle=yes

this is actually the implicit rule of the tag overtaking=no in Germany

image

overtaking:double_tracked_motor_vehicle:overtaken:double_tracked_vehicle=no
overtaking:double_tracked_motor_vehicle:overtaken:single_tracked_vehicle=no

imageimage

overtaking:motor_vehicle:overtaken:double_tracked_vehicle=no
overtaking:motor_vehicle:overtaken:agricultural=yes

grafik

overtaking:hgv:overtaken:double_tracked_vehicle=no
overtaking:hgv:overtaken:single_tracked_vehicle=yes

Imho this is a quite simple and easily understandable system, if there are valid tag for all classes of vehicles being subject to special overtaiking regulations, like the “brommobiel” mentioned by @Allroads (in Germany “Leichtkraftfahrzeug”) or “slow vehicles” (of a certain max. speed) and the like, so I also fully agree to:

If we had the dtv and stv as proposed by @dieterdreist, and we ignore superfluous =yes, then it’s even easier:

image
overtaking:motor_vehicle:dtv:overtaken:dtv=no

image
overtaking:motor_vehicle:dtv=no

imageimage
overtaking:motor_vehicle:dtv:overtaken:dtv=no
overtaking:motor_vehicle:dtv:overtaken:agricultural=yes

grafik
overtaking:hgv:overtaken:dtv=no

If we had dtmv for “double-track motor vehicle”, then it would be even shorter. But as @mueschel has already pointed out: we have thousands of overtaking=no taggings. Is it more feasible to retag them all, or to reinterpret the meaning? As much as I like overtaking:dtmv:overtaken:dtv=no for its explicitness, I highly doubt that a significant amount of German mappers will know the actual limitation of the sign. It’s known as “overtaking forbidden”, so it does kinda make sense to say overtaking=no and simply introduce a “really, really forbidden” value for the new sign.

Don’t get me wrong, I would love this tagging, I just think it’s unrealistic to retag all ways and educate all mappers :frowning:

1 Like

I am getting you perfectly right and had the same thougts … on the other hand you have to die one way or the other. Either keep it simple and vague or tag it explicitly and it’s kind of complicated.

Anyhow there is a mistake in your tagging examples

Correct is
overtaking:motor_vehicle:overtaken:dtv=no

because as per StVO the overtaking prohibition applies to ALL kinds of motor vehicles (red car) to overtake dtv (black car). The same applies for example no. 3.

Whereas this one

is correct, the StVO explicitly states that the overtaking prohibition (red car) in this case applies only for dtv.

We would call this “inconsistent tagging” but the StVO apparently has no problem with it … :upside_down_face:

Exactly, that is what I meant with

That would mean a car is allowed to overtake a motorcycle, but a motorcycle is not allowed to overtake a car. I looked it up and you’re right. How weird is that?

This is not weird, this is thoughtful german bureaucrat logic.

afbeelding

The hierarchy wiki

the motorcycle fits to: Single-tracked, so it is part of single_tracked_motor_vehicle, suggested: stmv
and it is part of single_tracked_vehicle, suggested: stv

Use “one” hierarchy OSM transport scheme.

How to fix that for the Netherlands?
Where the car is not allowed to overtake the motorcycle. Can not use *:dtv, because of hierarchy scheme motorcycle is single_tracked.
also *:dtv is also a carriage, which a car can overtake.
afbeelding

But overtaking:motor_vehicle is also moped and mofa, how to exclude them?
They may overtake a car.
I should not ban, what is not forbidden, it should be the truth.

I like stv, stmv, dtv and dtmv ! short for double_tracked_motor_vehicle.

A try:

overtaking:dtmv:overtaken:dtmv=no
overtaking:dtmv:overtaken:motorcycle=no
overtaking:motorcycle:overtaken:dtmv=no
overtaking:motorcycle:overtaken:motorcycle=no

with undersign:
overtaking permitted “brommobiel” microcar: is a dtmv,

overtaking:dtmv:overtaken:micorcar=yes
overtaking:motorcycle:overtaken:microcar=yes

This means a microcar 45km/h can overtake a microcar

undersign:
a tractor can be overtaken by “motorvoertuigen” “inhalen toegestaan” overtake permitted. A tractor is a dtmv.

overtaking:dtmv:overtaken:agricultural=yes
overtaking:motorcycle:overtaken:agricultural=yes

This means a tractor 25km/h can overtake a other tractor.

In Germany is it allowed to ride with two next to each other with a bicycle?

You are allowed to ride next to each other if you don’t block anyone (Meaning: if this would make overtaking impossible, then you must change to riding one after the other).
Exceptions are bicycle_road=yes, where you are always allowed to ride next to each other, and in groups of 16 or more bicycles, where you even ignore mandatory bicycle ways. But the latter is a special case.

That makes the tagging more complex but your try looks good to me.

Not allowed unter german legislation when “overtaking=no” is signposted. Apparently we have the more simple traffic regulations … :wink:

So do I ! Additionally we could use “mv” for motorized vehicles in general.

Why not, if one microcar drives very slow and the other one at max speed? The signposting does not prohibit that imho. And does the same not apply to the undersigned “agricultural=yes”?

Why not allow the established tagging of overtaking=no for the standard case and additionally offer the option of specifying the rule by “overtaking:mv:overtaken:dtv=no” for those who like a more specific tagging?

Given a proper documentation would not make the use of such tagging too complicated. And it would allow a correct tagging of the “agricultural=yes” problem → “overtaking:mv:overtaken:agricultural=yes”.

Because it would mean that the vast majority of these signs are being tagged wrong. We’ve seen first hand that it’s quite hard to get it completely right. I don’t think that this is what we want, but I might be on my own here.

Also, as much as :overtaken works, I’d still opt for putting the suffix of :overtaken into the value, instead of just no and yes, which leads to this “really simple” tagging for Germany:

image overtaking:motor_vehicle=stv
grafik overtaking:hgv=stv
image overtaking:dtmv=no
image
image
overtaking:dtv=agricultural

But even with this, the issue remains that most people don’t have a clue what the actual legislation is about these signs (and I don’t exclude myself from making mistakes, obviously). I still think it makes more sense to tag “here be overtaking forbidden sign” and “there be overtaking really forbidden sign”. And we can always adopt the overtaking=agricultural to complete the schema.

Before anything else, the question really has to be: do we want to reinterpret the meaning of overtaking=no, or retag all signs. If the first, then coming up with all these wonderful suggestions isn’t going anywhere.

That only works, if we don’t use overtaking, but rather a different key that overtaking=* maps into. Something like: our wonderful new tagging uses over instead of overtaking as a key, so overtaking=no maps to over:motor_vehicle=stv by default (or over:motor_vehicle:overtaken:dtv=no if you want to), so overtaking is used to map the sign and over for the nitty-gritty details. Of course, it’s just for demonstrating what I mean, I don’t want to use over as a key. I hope you get my idea.

I would like to stress one of my statements above again: Tagging of the basic traffic sign should not change:

  • tags would need to be different in every country
  • thousands of mappers’ habits and tools would need to be changed
  • hundreds of thousands of objects would need to be edited

The most detailed and most precise tagging scheme we can come up with is of no use if it is too complicated for the casual mapper. For basic traffic signs a simple “this sign → this tag” is required. Most traffic signs have a country specific meaning, but are mapped to the same tag in OSM without issues, why does it need to be different for this one?

I agree, if we stay with the established “motor_vehicle” instead of yet another new key part “mv”. New vehicle categories might use abbreviated names (stv, dtv), but existing ones should not be changed.

There’s no absolute need for a vehicle category to fit into a hierarchy. It’s definitely possible to have a category outside the tree, e.g. if a law combines hand_cart, hgv and mofa in a group, we can define a tag for it.

A other point, wo benefit from it with such a new scheme.

Imaging driving/riding your vehicle and you do have a device on your vehicle,
A expressed sign, with my NL example: sign and undersign, 8 lines of tags.
What to expect as a warning, a image on the screen, counting down over x metres, what image should the device show, can it translate back to the original image, or a voice command, counting down over x metres, and mention all the options.

That could all be achieved by mapping the sign (or automatic recognition). The (not really) realistic use case would probably be to for routing engines to penalize roads that don’t allow overtaking of single-track vehicles, or tractors in autumn or slightly reduce the penalty for a general overtaking restriction.

I would note that in any complex situation the current “popular” proposal will require far more tags.

Hmmm, is that so?

You are definitely right, I have drifted away in the frenzy of new vehicle class codes … :upside_down_face: … “motor_vehicle” as established tag should not be replaced of course,

I’d probably prefer to only tag something like this and leave out the interpretation to the data consumer, who knows best in what detail it needs the rules and for what purpose. Otherwise we’re not really tagging what’s on the ground but the detailed law that could change (even without changing the signs).

My suggestion would be to either allow tagging locale specific codes either as direct values of overtaking, like overtaking=DE:276 or with a combination like overtaking=no, type:overtaking=DE:276 to be extra compatible. Overtaking rules that follow from road marking etc. could have their own special values, so this wouldn’t be restricted to signs.

1 Like

Meanwhile I agree.

To be honest: After reading all the different arguments / thoughts / considerationse above, I even doubt it makes sense to tag the details of the ‘overtaking-signalling’ at a place.
I wasn’t aware of how different the legislation in each country is regarding the same traffic signs.

overtaking=no actually is more like overtaking=restricted (I don’t want to change to this :wink:), meaning that there are allways exceptions where it is allowed to overtake. The exceptions however differ from country to country. In Switzerland for example all vehicles which cannot drive >30km/h are allowed being overtaken despite the usual ‘overtaking=no’ - Sign).

Probably better overtaking:type=DE:276 as in case of speed the convention is maxspeed:type=*.

How is this different to traffic_sign=DE:276? Why use overtaking=* for this at all then?

You can already use overtaking=no + traffic_sign=DE:276. And currently, 277.1 is mostly mapped as overtaking=no + traffic_sign=DE:277.1 for lack of proper tagging.

If you want to use something like overtaking:type, then at least use something else than the numeric sign, like overtaking:type=restricted/strict. Even though that also doesn’t solve the slow traffic issue…

Traffic sign is usually a point and marks the location of the traffic sign. I mean, I guess you can also put it onto a line if you want, but it’s also not that easy to filter/parse the traffic_sign values and extract signs that apply to overtaking. The other point is to be able to map overtaking rules that also come from other sources, like road markings and so on, with potential new values like solid_center_line or whatever.

The idea was to create shorthand values for complex country specific rules. I’m thinking about possible usecases for the data. If I were to program a navigation system or car hud and wanted to display the current overtaking restriction, I think I would find something like overtaking:type=DE:276 most helpful, as I can just look up DE:276 in a database and find the associated icon (and maybe applicable rules). I think restricted or strict would be too unspecific.

1 Like