Doing crossings right

I’m starting this topic after reading wiki on marking highways and crossings but there are still some things I’m not sure of.

So let’s say we have some road and a footway and they cross. Let’s say it’s a zebra crossing, so we put node tagged


where the two cross

We coud stop at this and it would be fine, but on the footway we can mark that part of it is a crossing, so this part might be marked as


This is what I think is a proper way os marking this is, but then we duplicate some information.
Type of crossing, kerbstone and all other crossing-related tags will be the same in both node and footway.
We also know that the node is a crossing, even if we don’t mark it, because it’s place where road and footway marked as crossing cross, so maybe leaving it empty would be enough?

How should I approach this?

Normally you would not map the footway, unless it physically separated from the carriageway; you would use sidewalk=* on the road itself.

I would suggest you would not micro-map the crossing unless you also micro-mapped the road as an area (there is a markup scheme that allows the physical bounds to be mapped as well as the nominal centre line).

According to wiki it’s fine and I often see sidewalks being marked separately.
Also not every crossing is associated with sidewalk.

Whilst there is a ‘sidewalk as separate way’ scheme, your original problem shows one of the issues with it. If one maps the crossing as a way, the presence of that crossing on the street is less apparent. Instead of just consuming a highway=crossing node, applications will now have to check if intersecting footways (or cycleways are tagged as crossings). Many routing applications will not do this and will therefore fail to impose suitable penalties (particularly for traffic signal controlled crossings).

This is one of the reasons (there are others) why I prefer the use of the sidewalk tag on the main highway ways.

However, looking at your example I would suggest the following:

  • Tag the crossing part of the footway (between the kerbs) as highway=footway, crossing=yes (or crossing=zebra …)
  • Tag the intersecting point as highway=crossing
  • dropped or flush kerbs can then be marked where they occur (useful because the two sides of the crossing may be different)

In this way you are not violating the one feature one element rule; keeping to a standard tag to indicate that it’s a footway, and providing linking information to allow the elements to be associated. As I don’t map things this way I have no idea if this is what others do. highway=crossing on a way which is also a regular highway seems like a bad idea because one then loses implicit information about permissions.

My other grouses about separate sidewalks are:

  • Very error prone if all connections to streets are not made.
  • Generates silly routes if incomplete
  • Even when done well, will produce non-optimal pedestrian routes on long roads without intersections or crossings. As I use OSM all the time for working out how long to get to bus stops this is important to me!
  • 3 times as much data to maintain
  • Excessive clutter on some mapping applications (this is a consumption issue, but I dont think anyone has shown an effective way to transfer information on separately mapped sidewalks to the parent street way.

The principal suggested advantage is much better routing for wheelchairs, and presumably better information for blind people.

Like hadw I tend to regard this as something for the future to be added alongside highways as areas. However, like most things in OSM, someone has to start out with these things and find how to make the tagging & mapping workable for their particular objectives/desires etc. It just happens that this particular issue isnt high-up in my personal priorities.

That’s good advice and I will have it in mind, but it doesn’t exactly answer my question.
Sometimes (very often actually) sidewalks are already marked as separate paths and I don’t necessarily want to change that for various reasons. Other times footway crossing a road isn’t even a sidewalk.

After some additional reading it seems like having both way and a node marked is a proper way to do it.