Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"stop" access=no rendering if there are tags like foot=yes, bicycle=yes etc. #3304

Closed
Elefant-aus-Wuppertal opened this issue Jul 15, 2018 · 26 comments

Comments

@Elefant-aus-Wuppertal
Copy link

Elefant-aus-Wuppertal commented Jul 15, 2018

Sorry that I have to say, but, please read the whole text before you answer. This might be helpful to avoid misunderstandings. Thank you very much.

Expected behavior

The access=*-value does only then stand for all modes of traffic, if there are no more specific ones.

In most cases, access=no should mean that nobody has access to a way, because it's blocked to everybody (for example due to damage). But the thing is, that access=* covers all means of transport, but it does not overwrite them, if there are tagged some explicitely. So, is it like this that it is allowed to tag for example a way in a forest with access=no and foot=yes to show that only pedestrians are allowed to use this way? I think it is, even it's not gladly seen because depending on the highway-tag there are meant to be some defaults.

Actual behavior

What the problem actually is:
OSM carto renders all ways with access=no grey, not looking whether there are some allowing tags for foot=, bicycle= or others. I know, OSM carto does not focus on a specific traffic mode, but wants to represent all of them. But I think, exactly that point does not work when you have a way with access=no and for example foot=yes. The way is rendered gray and you might think it can't be used by anybody - but looking at the data it's wrong. Do you understand? access=no should in my opinion only be rendered when it stands for really all traffic modes on/for a way. But at the time there are more access-depending tags, so foot=* with an other value, the way's access=*-value does not stand for all traffic modes anymore. That's the kind how access-tags work in osm.

What you might argue:
Okay, now you could say that if a way is not closed/forbidden for every mode of traffic, we should remove/not use access=no at all, but only more specific mode-of-traffic-tags. Yes, this is the best practice also in my opinion. But, the thing is, that using access=no not only for completely closed ways but also to "lock" the way for all these traffic modes which are not tagged further explicitely, is a legal practice (so I see it - do you have counterarguments?)

What I think is, that we neither over- nor underrepresent any mode of traffic. But if ways - with access=no and any further explicit, one or more modes of traffic allowing tags - are rendered gray, we actually do that. We underrepresent the modes of traffic which are allowed on this way, because the way is rendered gray and you might think it's blocked to everyone, although it isn't.

I know it might be an intention that access=* should only be used for general restrictions which have no excepts. But I don't know whether that would be in the communitie's sense. We should not discuss that here, maybe, but look: access=* has been just not made to a key which overwrites other explicit keys, and I think there is a meaning behind this. They would have defined access=* to overwrite others if they wanted to use access=no only for all-covering restrictions.

Links and screenshots illustrating the problem

for example, please look at this way: https://www.openstreetmap.org/way/78194011
The way is rendered gray, even it has a foot=yes tag. Is the way's tagging not legal?

@kocio-pl kocio-pl added the roads label Jul 15, 2018
@kocio-pl kocio-pl added this to the Bugs and improvements milestone Jul 15, 2018
@kocio-pl
Copy link
Collaborator

I understand your proposition, but it's heavily related to tagging nuances. I'm not too familiar with that, so I need some general introduction what is documentation indicating and what are the common tagging practices?

@dieterdreist
Copy link

dieterdreist commented Jul 15, 2018 via email

@dieterdreist
Copy link

dieterdreist commented Jul 15, 2018 via email

@Elefant-aus-Wuppertal
Copy link
Author

Elefant-aus-Wuppertal commented Jul 16, 2018

are you really writing about all modes of movement, or do you maybe refer to all kind of vehicles?

I know you could think that I'd only referred to all kind of vehicles, but access=no does mean more, even it's often misunderstood to think that it would only cover pedestrians and any vehicles, but you know there are more (horse, dog, etc.) which often are not tagged explicitly, but strictly speaking of course are also covered by "access".

@Elefant-aus-Wuppertal
Copy link
Author

so I would propose to close this issue then, because part of the reasoning for style changes is that the style should encourage good tagging, and if we both agree there are some potential issues with access=no foot=yes, it seems right to discourage its usage and highlight such cases (read: “lowlight” in this case).

If you think it's the best for this issue...
At the moment unfortunately I do not have a real opinion on that. Maybe I will continue the discussion about the access=no-topic somewhere else.

@jragusa
Copy link
Contributor

jragusa commented Dec 22, 2018

Following @dieterdreist, I propose to close this issue. access=no means that all traffic modes are forbidden. In the above examples, there is a confusion between access=* and motor_vehicle=* which is widely observed. People consider access=no when vehicles are not allowed and not motor_vehicle=no.

@Adamant36
Copy link
Contributor

I second that. IMHO would be hard to show what specific access is implied on the rendering side anyway and there is already specific map styles for that type of stuff as it is. Also, I think a lot of that stuff can be made more visible by mapping the barriers blocking specific types of traffic that isn't allowed and we are adding icons for them soon hopefully. To me, that's more then enough.

@Hufkratzer
Copy link

https://wiki.openstreetmap.org/wiki/Tag:access=designated says

The value designated is not meant to imply that OpenStreetMap access=* permissions have been automatically "designated" only to that transport mode! *If an element is meant only to be used by specific designated transport methods (overriding whatever defaults may exist for that way), use access=no in addition of the =designated value.

I think this is what @Lukas458 meant. Lukas's example was with foot=yes but with access=no + foot=designated a way is grey too, example: https://www.openstreetmap.org/way/426628519 . I don't understand what this has to do with a confusion between access=* and motor_vehicle=* ? Is the wiki page for access=designated wrong?

@Lukas458 :

Maybe I will continue the discussion about the access=no-topic somewhere else.

Did you continue the discussion somewhere else and what was the outcome?

@Elefant-aus-Wuppertal
Copy link
Author

Elefant-aus-Wuppertal commented Dec 23, 2018

@Hufkratzer, your example exactly describes what I meant.
Myself I unfortunately didn't continue the discussion, but I found some interesting threads in the OSM-forum for example https://forum.openstreetmap.org/viewtopic.php?id=54660 (unfortunately in german :)) and the overall consensus was, that access=no has its sense. Some mappers say it would only make sense to use it only then, when really all modes of traffic (vehicle+foot+horse+carriage etc.) are forbidden, but some others thay access=no can stand also there if some "lower" mode of traffic is allowed, as in Hufkratzer's example. So the wiki-definition isn't wrong and most of the use-cases aren't wrong too.
But also here you have to defferentiate in my eyes.
Of course, when several traffic modes are allowed, access=no should not be used. But when really only one single traffic mode is allowed (foot for exaple), access=no is useful AND allowed to block all other kinds of traffic by setting one tag. On ways, too.

@jragusa
Copy link
Contributor

jragusa commented Dec 23, 2018

@Hufkratzer You will not find a way with access=no, motor_vehicle=yes, foot=no and horse=no because people implicitly consider the access tag to cars. If cars are not allowed, they will tag the highway with access=no whatever the rules for the other transport modes. This is not correct because they apply a greater importance to car than to the other kind of transport.

The best way would be to display some icons (e.g. road signs) along the way to indicate which transport mode is forbidden or tolerated but it will probably become a mess in some cases.

@Hufkratzer
Copy link

The forum discussion mentioned by @Lukas458 contains a link to https://wiki.openstreetmap.org/wiki/Key:access#Access_tag_values where one can read that access=no means:

No access for the general public. Consider using additional access (like foot=yes or bicycle=permissive, etc.) to indicate who can use the element. If only specific transport modes are forbidden, prefer more specific restrictions like vehicle=no or motor_vehicle=no over the general key access.

Although this passage was translated to German,with only "access not allowed", on the German map the two above mentioned ways (paths) with access=no + ... look normal:
https://www.openstreetmap.de/karte.html?zoom=17&lat=51.22802&lon=7.08345
https://www.openstreetmap.de/karte.html?zoom=16&lat=44.89375&lon=-94.31525
Tracks with only access=no look grey, example area:
https://www.openstreetmap.de/karte.html?zoom=16&lat=47.8324&lon=9.22017
containing:
https://www.openstreetmap.org/way/41215838 track without access restrictions
https://www.openstreetmap.org/way/41215836 path with only access=no
https://www.openstreetmap.org/way/41215839 track with only access=no
It would probably be an improvement to grey out paths with only access=no too.

@dieterdreist
Copy link

dieterdreist commented Dec 25, 2018 via email

@Elefant-aus-Wuppertal
Copy link
Author

Elefant-aus-Wuppertal commented Dec 26, 2018

does this imply it is a synonym for access=private?

not really a synonym is it? "For the general public" is IMHO wrong, access=no means "no access for everybody", if a special group has access it has to be access=private. access=no is for closed and blocked roads, which are blocked due to hazards, construction etc.

@Hufkratzer
Copy link

There was no consensus about this in the forum discussion mentioned above. The wiki distinguishes private and no, see https://wiki.openstreetmap.org/wiki/Tag:access=no

The access=no tag indicates that the object is not to be used by the general public, with stronger interdiction than the access=private tag. An example would be access roads into military or government facilities.

The hint that you can use other access tags together with access=no was first introduced in the wiki page for Key.access in June 2011 (see here), and in March 2012 in the wiki page for access=no (see here).

If someone wants to deprecate access=no because he thinks it's bad tagging he may try to do so. Then, of course, this issue can be closed. But as long as the wiki explicitly suggests access=no + foot=yes, bicycle=yes, etc. and people use it like this I think it is confusing that the map greys all these ways out. This here is probably not the right place to discuss tagging problems in detail but I assume it is the right place to report contradictions between the wiki and the map.

@jeisenbe
Copy link
Collaborator

jeisenbe commented Dec 27, 2018 via email

@pbnoxious
Copy link

I want to promote this issue. My main point is that it should not make a difference if you tag a way with e.g.

  1. "access=no" + "foot=yes" or
  2. "vehicle=no" + "horse=no" + "ski=no"

(omitting further rarely used transportation modes in the second case)

For a router this would be exactly the same, either you route via foot and are allowed by the override in 1, or by default in 2 – or you route via anything else (e.g. bike) and are forbidden by the access=no in 1, and by the explicit restriction in 2.

The rendering does currently make a difference between these two tagging styles. The first is rendered in the "noaccess" style, the latter in the "default" style.

To show a real life example: in the following screenshot all paths/tracks are forbidden for anything but pedestrians (within a nature reserve), but due to the different tagging this looks like a total mess.
different rendering styles at the walberla

As long as the wiki and routers explicitely mention tagging "access=no" with further explicit allowed modes of transportation I find this a bit strange.
Therefore I would also prefer to have anything that is tagged with "access=no" and some allowed transportation mode in the default style and only where really nothing is allowed as "noaccess".
I can see that this makes the logic a bit more complicated but it would match the intentions of the mapper more closely.

@aceman444
Copy link

I also support this report. access=no (or private) with further modes like foot=yes or bicycle=yes that override the access=no are common practice in the data and documented on the wiki.
So this report should be solved on the carto rendering in some way.

@Elefant-aus-Wuppertal
Copy link
Author

Elefant-aus-Wuppertal commented May 6, 2021

Here's an example how the code would have to be changed in my eyes - for highway=footway in this case,
the following changes in https://github.com/gravitystorm/openstreetmap-carto/blob/master/style/roads.mss in line 1872 would be needed

line/line-color: @footway-fill;
[access = 'no'][foot != 'designated'][foot != 'yes'][foot != 'permissive'][bicycle != 'designated'][bicycle != 'yes'] { line/line-color: @footway-fill-noaccess; }

As an example. For taking highway=footway, I would only take foot=designated/yes/permissive and bicycle=designated/yes into account for blocking access=no rendering, because pedestrians and maybe cyclists are the only traffic features you would really expect that could be "allowed" on a footway when people want to block all other traffic modes with tagging access=no to a footway.

Of course, for other types of highway this would be different.

And as you see, of course the source code gets longer and this would have to be for (nearly) each highway class but I don't think thats a problem. Maybe we could discuss for which allowed transport modes exactly access=no rendering should be blocked on which highway type. For example on a bridleway, you could come across access=no + horse=yes/designated, more likely then getting this on a footway etc.

@hungerburg
Copy link

I have seen this used to make alpine hiking paths render less prominently. The combination "access=no+foot=yes" on such paths is pure mapping for the renderer. They are in no way special, it is very common for paths, that only pedestrian use is allowed, consider the millions of sidewalks and other urban footpaths.

(Promised to create this issue here, #1500, but it exists already.)

@Elefant-aus-Wuppertal
Copy link
Author

I made an overpass query to look how familiar/used the tagging of - the most common example wanting to mention in this ticket - highway=footway+access=no+foot=yes and highway=path+access=no+foot=yes is.

There are over 12000 ways tagged like this in western Germany and Netherlands already.

Also in other areas this tagging exists to a not inconsiderable extent..

So it is common.

Also if there might be some examples where "foot=yes" was just forgotten to get removed when someone set access=no to block a way which has been cancelled to access, for example, but I think that's not an important number of cases.
(Or when, osm carto would just show then that the way isn't completely blocked actually with the existing tagging for this way).

When "foot=yes" (for example) is set on a way with access=no, this way then is not blocked for all modes of traffic.
On highway=footway and highway=path this argument is given particular weight insofar as these paths are often only available for pedestrians or pedestrian traffic is to be expected there as main usage (not always, of course, but in most cases). Therefore, the graying out in osm carto is (particularly) misleading for these reasons.

access=no is a special case in that it is defined as that its meaning "how far it goes" also depends on other tags (do there exist other acess-tags or not?)

So I think it's worth to make a PR for this.

@Adamant36
Copy link
Contributor

"The combination "access=no+foot=yes" on such paths is pure mapping for the renderer."

I don't what the problem is in general with that sort of tagging. Access and the ability of certain modes of transportation to utilize a certain route are completely different and not mutually exclusive. For instance, just because a foot path is gated off and not accessible to the general public doesn't make it any less a foot path. Least of which because there's such a thing as private paths. So its perfectly reasonable to tag something as not being accessible but still being created for the purpose of walking.

@imagico
Copy link
Collaborator

imagico commented Mar 3, 2022

The solution to this is IMO what i outlined in #214 (comment) and recently demonstrated in http://blog.imagico.de/rethinking-road-access-restrictions-rendering/

@Elefant-aus-Wuppertal
Copy link
Author

Yeah, there's a lot of truth to that. It would be great if that could be implemented, it would really help a lot and advance this topic immensely.

@hungerburg
Copy link

So its perfectly reasonable to tag something as not being accessible but still being created for the purpose of walking.

According to https://wiki.openstreetmap.org/wiki/Tag:foot%3Dyes the tag foot=yes is meant to map legal implications for the general public. Unlike e.g. wheelchair=yes, for accessibility in the usability sense, or hiking=yes, in the sense of intent behind the creation or predominant use of paths. Taken by itself, this does not make the combination invalid mapping though.

Looking at usage in my surroundings, the tag foot=yes can be found on a number of paths, telling mostly, from what I guess, based on local knowledge, that they are not suitable for anything but walking. A great deal of those stem from ten or more years ago, when highway=path was new, not a few bear sac_scale=hiking too. Still, use remains in line with the documentation.

The combination of access=no+foot=yes appears mostly on service class highways, where a simple vehicle=no might be more appropriate. On paths, it can be found on a few high-mountain paths, where e.g. cycling, while legally allowed, is plain impractical. Those are the ones I meant when alleging mapping for the renderer. This too remains in line with the documentation.

Back to "legal implications": Shall Carto correct for such contrived, firewall like logic, that first takes away all of the rights, and only later allows specific ones, when rendering access restrictions, especially, where they only spell out the implicit/obvious?

@imagico
Copy link
Collaborator

imagico commented Mar 4, 2022

I don't think this is a line of argument that is productive here. It is beyond doubt that when tagging access restriction the paradigm of tagging them in the form restricted, except for ... is (a) widely used and (b) supported broadly by mapper consensus as valid mapping. This is supported by the data - for example access=private + foot=yes/designated/permissive is used almost a 100k times, access=no + *=designated > 30k times.

That not all combination of access tags make sense and not all of them are used accurately does not require further discussion. This issue is however not about any specific combination but about generally showing cases with tagging of the form restricted, except for ... in some way other than restricted - as a special case of what #214 discusses more generally.

@imagico
Copy link
Collaborator

imagico commented Oct 16, 2024

Closed through #4952. For more specific ideas for rendering restricted, except for ... cases (like #4321) please open dedicated issues.

@imagico imagico closed this as completed Oct 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests