Should keys like maxspeed:wet be discouraged and maxspeed:conditional used instead?

I’ve been looking at speed limit tagging and have found a number of subkeys which are really sort of conditions:

maxspeed:night
maxspeed:wet
maxspeed:children_present
maxspeed:flashing
(Also maxspeed:seasonal:winter, and I have a proposal to deprecate it in process)

Would it be best to advise against their use in favour of maxspeed:conditional?

I think so, as checking lots of keys, and even knowing that they exist, is more complex than using one key, both for mappers and data consumers.

An issue with children_present and flashing is that those are not conditions that navigation software could know anything about, other than maybe taking a best guess on whether or not it’s school time. But the same could be said for however they are tagged.

These tags all seem to have been only used in a few small areas, and in batches (looking at tag history) and so do not have wide acceptance or use. Also, the use of all of them started before maxspeed:conditional was established.

I have added them to the wiki page for maxspeed:conditional as possible tagging mistakes but then realised that it should probably have a discussion.

9 Likes

Thanks for noticing these older keys. I agree that conditional restrictions should be preferred over them.

The only advantage I can think of for something like maxspeed:night is that data consumers would be able to handle the value with less upfront coding. But routers already have no choice but to parse conditional restrictions, at least for common conditions like time, lest they send someone down the wrong road. So it ends up being not much of an advantage compared to a night condition in a conditional restriction tag.

Depending on the region, “night” might get translated to sunset-sunrise or dusk-dawn or a specific timespan. But in the absence of more specific knowledge, night is fine as a condition. At least routers would know when they’re unable to figure out whether it applies.

2 Likes

Similarly, there are two documented methods for documenting drive thru (and kitchen, ATM, etc.) opening hours: opening_hours=06:00-23:00 open "Dining in" || 00:00-24:00 open "Drive-through" (documented here)
and opening_hours:drive_through=*. However, using separate fields in this case may be more understandable.

maxspeed:wet is only used 867 times, while maxspeed:conditional=…@wet already has 3441 × 110 @ wet, 1171 × 80 @ wet and 694 × 100 @ wet alone.

So if routers want to support this properly, they have to evaluate @wet anyway.