How should legal restrictions on existing crossings be mapped?

Discussion Topic: When infrastructure for a crossing exists and a sign is present that legally disallows crossing, how should this be mapped?


We’ll use this location (in OSM: Way: 1332006742; on Mapillary: 3308819642716608) as our example.

Crossing infrastructure is present (crossing:markings=lines) but signs are present that now legally disallow use of the crossing while directing pedestrians to a counterclockwise-around-the-intersection alternate route.

The signs look like this:


(Source: Mapillary; note: different location and situation)


(Source: Google Streetview)


(Source: Rapid, with King County 2023 Orthoimagery background and non-paths hidden)


1. What tags should be set on the highway=footway+footway=crossing way?

2. What tags should be set on the highway=crossing node?


Thank you, fellow OSM US Pedestrian Working Group participants, for prompting this discussion!

I would map it, like a normal crossing with lines and translate the signs into access. Your sign would result in foot=no.

4 Likes

Would any of the lifecycle prefixes make sense? disused:highway=footway with foot=no?

3 Likes

The crossing seems to be perfectly fine to be usable (so lifecycle is “active”), it’s just forbidden to use it as a pedestrian.

This sign is actually called “No Pedestrian Crossing”. There’s a textual variant of it too:

Both variants of the sign correspond to crossing=no on a node, and presumably no:highway=footway footway=crossing on the way. They’ve combined it with the “Use Crosswalk” sign, which doesn’t result in any extra tagging.

We often describe sign R9-3 as foot=no because highway departments so often install it away from crosswalks, but technically the national MUTCD’s “No Pedestrians” sign looks different:

The situation differs in California, where the same :no_pedestrians: sign literally means “No Pedestrians” and comes with a plaque saying so.

In addition to foot=no along the way, you could map a road_marking=crossing area, since that’s all that’s left of it.

3 Likes

Somehow, highway=crossing+crossing=no doesn’t make much sense. Either there is a crossing or there is no crossing.
In case the mapper identifies the object itself (without the sign) as a valid crossing. Then we should tag it that way. The crossing as a normal crossing and translating the sign into access.

If the mapper identifies the object not as a crossing, there should be no crossgin way at all, as without crossing there is nothing OTG except the road and two lines. So neither a highway=footway+footway=crossing nor a highway=crossing+crossing=no. But you might map the road markings like you mentioned.

crossing=no goes by itself, never with highway=crossing.

1 Like

I would definitely add a lifecycle prefix to the highway=* tag on the crossing way as others have suggested. If it’s no longer usable as a path, it should no longer be tagged as a highway.

1 Like

But isn’t it perfectly fine to cross there? It’s only a sign stopping me. Like if you would have such kind of sign on a normal path somewhere in the woods, you would use highway=* + foot=no or if there is no highway=* visible OTG remove the way completely.

1 Like

Somehow, I think no type of highway applies in this case, since no means of transport is allowed to use this way. A lifecycle prefix (like disused:*) would help other mappers understand the situation, especially those mapping based on aerial imagery rather than ground-based survey. foot=no is not needed with disused:highway, but it can help avoid pedestrian routing errors if highway=* is accidentally reintroduced and goes unnoticed.

highway=path might be acceptable because in OSM a path is a way with uncertain main use: either the mapper cannot determine it, or they identify multiple primary uses that seem equally important. But I don’t think it makes much sense to consider it a way, since it doesn’t seem to have any use by anyone.

The point of crossing=no is to confirm that there’s no crossing where one might expect a crossing due to road geometry or, in this case, misleading markings. I admit this is something that doesn’t happen very often in the woods.

1 Like

Using highway=* does not require any legal access, just actual presence. In this case the only indication would be the 2 lines and the signs. If that’s enough for being a way, it’s a normal highway regardless of any access restrictions. If something is legally not allowed, it’s described with access. If the two lines are not enough for being a way, nothing needs to be added. No crossing way, no crossing.

For me those indicators would be enough and also the sign is indicating, that people are actually crossing there, otherwise there is no need for the sign. Not sure crossing=no is necessary on top of the foot=no.

EDIT:

You might be right. For the road traffic, crossing=no might be helpful to know that there are lines, but it’s not actually a crossing.

In principle yes, this shouldn’t be mapped as a way at all. The reason why you might want to map a way with a lifecycle prefix there is to prevent it from being incorrectly mapped by someone else at a later point based on aerial images, etc…
This is similar to why we map destroyed/removed houses with a lifecycle prefix instead of outright deleting them, because they might still be visible on older image sources.

Thanks, everyone, for the discussion. I propose the following:

When infrastructure for a crossing (such as lowered curbs on either end, or road markings) physically exists and a sign is present that legally disallows crossing, this can be mapped as:

Node: crossing=no (without highway=crossing)

Way: disused:highway=footway + disused:footway=crossing + access=no + access:signed=yes

Tags describing the physical properties (crossing:markings=lines + crossing:signals=no, etc.) may remain on either or both elements.

That way, the node is not interpreted as a location for crossing, and does not have an access=* value that might impact consumers of roadway data, and the way is effectively hidden from routers by the disused: prefix but remains visible to editors to reduce the likelihood of incorrect updates, and the presence of a sign (the access:signed=yes tag) indicating the legal restriction (the access=no tag) on its use is mapped.

Any previously unvoiced major corrections or objections?

4 Likes

From my point, it doesn’t make sense to have access=no on a disused:highway=. disused:* is expressing that the object can’t be used.

1 Like

… and access isn’t saying that it can. It is describing the legal rules around the use of the object, which may very well differ from whether it is physically possible to use it or not.

3 Likes

So? If I can’t use a way, aka it’s not possible. disused:* means even if you want to, you simply can’t. What is the difference between whether I am allowed to use it or not?

It’s similar to a disused:shop doesn’t have opening_hours, if it would have disused:opening_hours to keep the values during a refurbishment or the like.

So what you’re saying is that access=no is redundant in this case. It is, but so what? I wouldn’t go out of my way to strip an occasional motor_vehicle=no from a barrier=bollard along a highway=cycleway just because it would have no effect on routing. :man_shrugging:

Nope, my point is rather disused is used due to the remaining line markings and to prevent someone re-enter the crossing way by accident. Adding access would be comparable to adding in that location an empty way just tagged with access=no. What should be the meaning of an OSM object just containing access?

If someone stuck a bunch of Do Not Enter signs in a ring around a random patch of grass, in the middle of a larger patch of grass, that’s exactly what I’d do (with the addition of area=yes). Here, though, we have a disused:highway=* tag, which communicates the intent to other mappers. Is there an actual problem with adding a redundant access tag to it? I mean, I may or may not bother, but I wouldn’t nitpick about it.

2 Likes