[Tagging] Using restriction and restriction:vehicle for the same restriction relation should be discouraged

easbar.mail at posteo.net easbar.mail at posteo.net
Sat Oct 29 05:13:02 UTC 2022


Yes, maybe one problem is that it isn't clear if restriction:vehicle 
overrules restriction+except. I like your idea of not using the except 
tag but rather something like restriction:value=unrestricted. Actually 
that would be the first useful combination of restriction and 
restriction:vehicle that I have heard of. But unfortunately this is 
neither mentioned in the wiki nor does it seem to be used that way.

All the other cases where I saw a combination of restriction and 
restriction:vehicle were either redundant like

restriction=no_left_turn
restriction:hgv=no_left_turn

or they used the except list to resemble the restriction:vehicle tag to 
satisfy routers that do not understand restriction:vehicle like this 
(often in addition to the restriction:vehicle tag):

restriction=no_left_turn
except=motorcar;moped;bicycle;schoolbus;etc;
restriction:hgv=no_left_turn

And since it isn't clear from the wiki how a 'complete' list of except 
values is supposed to look like this doesn't seem to be ideal, either.

There are even cases where some kind of except is used with a condition:
https://www.openstreetmap.org/relation/8117243

restriction=only_straight_on
restriction:conditional=only_straight_on @ (length>10 m)
except=bicycle;moped;motorcar
except:conditional=vehicle @ (length <= 10 m)

but could just be:

restriction:conditional=only_straight on @ (length>10)

I'm still wondering: Do we ever need different restriction values for 
different vehicles, or for different conditions, for the same relation? 
I mean it's already clear that we need some way to express that a 
restriction is only valid for certain vehicles, but beyond that I don't 
think multiple restriction values should be used by the same relation.

For example something like this:

restriction=no_right_turn
restriction:vehicle=no_left_turn

seems problematic, because we only ever have one set of from/via/to-role 
members per restriction relation, which are never vehicle-specific, or 
depend on a condition.

By the way, the wiki mentions another 'global' tag: `implicit`. Just 
like `except` it is not clear to me if this is meant to modify only the 
general restriction tag, or also the more specific ones like 
restriction:vehicle, or maybe both/all? And what if one wants to 
resemble a situation where a restriction is implicit for one but not the 
other vehicles?


On 28.10.22 23:59, Tobias Knerr wrote:
> On 28.10.22 22:06 easbar.mail at posteo.net wrote:
>> Quite obviously this isn't ideal and as far as I can tell this is the 
>> exact reason we have the two approaches (one for excluding vehicles 
>> and another for including them).
> 
> Historically, I'd say the reason we have two approaches is that the 
> "except" key is older than conditional restrictions, and is a special 
> solution that only exists for restriction relations.
> 
> If you want to make this more organized, then I think the approach that 
> is most consistent with other tags would be to deprecate except=* in 
> favour of an "unrestricted" value. This could then be used as
> 
> restriction = no_left_turn
> restriction:bicycle = unrestricted
> 
> This neatly mirrors what is commonly done with other tags:
> 
> access = no
> [access:]bicycle = yes
> 
> _______________________________________________
> Tagging mailing list
> Tagging at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/tagging



More information about the Tagging mailing list