While working on the street parking revision proposal, we are facing an issue that we have not been able to solve elegantly for a long time and which I would like to present here for wider discussion.
Describing the problem: There are different degrees of “no parking”. “No parking” usually means that you are still allowed to stop or wait. If you are not allowed to do so, there are “no stopping” rules. In some countries there is an extra grade of “no waiting/no standing”. In addition, there are loading zones where you are also not allowed to park, but loading and unloading is explicitly allowed.
The old street parking schema has many weaknesses, which we address with the proposal. But in this one point it had an advantage, because there was a simple tag to describe this condition (no_parking/no_standing/no_stopping/loading).
But in OSM we usually use the access schema to indicate legal restrictions on the accessibility of a feature. The old parking schema deviated from this, which we now want to change - because parking restrictions can be mapped very well with the common keys like access, fee or maxstay. Only in the described case it is a bit more complicated: because such parking restrictions are graduations of “no” or “restricted/limited” access.
Our current solution is to use
access=no if you are not allowed to park (because then it is not a parking space). To be able to express the gradations, we have proposed
stopping=no (see the proposal page for the details.) Each of these tags implies the others, so using one of these three tags is always sufficient. For loading zones, we use the documented in-use tag
This works, but it is not perfect. Because only one of these rules can be applicable at the same time, but they are expressed with four different tags. Inconsistencies are therefore possible. Moreover, it is not so intuitive to use
access=no, although certain actions (e.g. stopping) are still possible.
A separate tag like
condition=no_parking/no_stopping... we consider unfavourable, as we have the
maxstay schemes exactly for expressing such conditions. Instead, a simple alternative could be to propose separate access tags for use on parking spaces, i.e.
access=no/no_parking/no_waiting/no_stopping as well as
access=loading. These would extend the range of documented access tags and it should be clear that they are not intended for use on traffic routes and other objects. With
access=variable, there is already such a documented value that is somewhat out of the ordinary.
What do you think? Is there anything against proposing new “single-purpose” access values of this kind? Or are there other elegant solutions?