Is there consensus on mapping pavements (sidewalks) separately to roads?

Hello!

I’m wondering if there is OSM Community consensus on the mapping of pavements/sidewalks on OSM. I’ve seen some people prefer to map them separately whilst others prefer to leave them, and just mark them using the sidewalk= tag.

This can be confusing for pedestrians, as the difference in mapping standards leaves a question of how to mark obstacles and information specific to the pavement, such as steps, elevation data, etc. It also means using the map effectively can be difficult, as it can’t be clear without delving into the tags where someone can and cannot navigate by walking.

It would be nice to discuss this with the community and see if a more agreed standard could be formed.

The OSM Blog post The best world map for accessibility has a link to OpenSidewalks which also talks about this issue.

12 Likes

I don’t think there is a global consensus.

In general I find mapping sidewalks as separate ways in typical suburban neighborhoods simply adds clutter and potential errors. For example, you need connecting nodes for every driveway the sidewalk crosses. In my area many sidewalks are not continuous so every place a sidewalk stops or starts you need to:

  • Terminate the the way at a node. But then your pedestrian routing is broken and the QA tools complain. You can add a noexit=yes to keep the QA tools happy but that does not fix the foot routing.
  • Or you need to add a connector from the sidewalk to the road to make the foot routing work. But those connectors are not really there, they are simply aids to allow routing and keep the QA tools happy.

So I generally just add sidewalk=left|right|both to the road itself. The exception for me is if the sidewalk does not exactly follow the road. When that happens then I will use a separate highway=footway.

6 Likes

Short answer: When the level of detail you want to map is easier to represent on a separate line then do so. Otherwise, an implicit tag is good enough.

Longer answer: Sidewalks have many special cases e.g. varying surfaces, geometries that deviate from the underlying street, or passing through tram platforms. Also, the geometry that results from the carriageway’s center line might be unacceptable as geometry of the sidewalk because of e.g. transition from one to two separated carriageways or for uncommon design of crossings. So there are situations where a reasonable mapper will come to the conclusion that a separate way models best the actual situation on the ground.
However, for most streets we simply lack the information whether they have a sidewalk at all. A survey in my neighbourhood and during the SotM France in France, followed by looking on aerial images elsewhere resulted in that ways with “highway=residential” have sidewalks on both sides in less than 80% of all cases on the ground. Other highway types are even less likely to have sidewalks. This means that we basically need a sidewalk tag on every car-passable highway. And by the length of the street grid it is a huge project to collect that information everywhere. Allowing for tags instead of explicit geometry helps to speed up collecting the information a lot.

This insight is the result of building a wheelchair-enabled routing myself in the metropolitan area here and presenting it in a talk on the FOSSGIS, the German SotM.

13 Likes

So I generally just add sidewalk=left|right|both to the road itself.

you wrote many sidewalks in your area were not continuous, doesn’t this approach lead to a lot of fragmentation of the highway?
The answer is already in the question, both methods are fine, but with more detail mapped the separate approach is preferable because you can add the detail easier, it’s easier to glimpse and maintain and offers possibilities for geometry details, topology details (things on the sidewalk and between the sidewalk and the road), and avoids highway fragmentation of the road

3 Likes

I want to emphasize this also goes the other way around.

I often see people “painting” separate sidewalks and breaking pedestrian routing, because it’s hard to get all the little connections right that are needed therefore.

7 Likes

Personally, I map sidewalks separately because I’m often trying to improve pedestrian routing. I use e.g. BRouter’s hiking-beta algorithm, and look for places where it doesn’t send me where I know it should be able to, and then add sidewalks and connections as required. It can sometimes make for cluttered rendering, but I think that’s a matter for the renderers to sort out (and some of them do very well).

11 Likes

As of 2022, there is no consensus.

A core reason for this situation is that both commonly used approaches lack the ability to capture some important knowledge about the world: Tags on the main highway=* cannot faithfully represent sidewalk geometries (and struggle to represent details such as barriers on sidewalks), while separate ways fail to capture the information which road a sidewalk belongs to. As a result, either choice makes some use cases of OSM data much harder or impossible to implement.

Notably, this means that – contrary to the answer by @drolbr – neither of the approaches has a higher level of detail than the other: Both are omitting information which would be readily available with the competing approach.

I believe that a sustainable consensus will require a solution that works for all use cases and doesn’t force mappers to choose the lesser evil. I expect this will involve mapping sidewalks as separate geometry, but expressing the relationship to the road in a machine-readable fashion. Some solutions have been suggested (e.g. the is_sidepath:of:name=* tags), but so far, none have gained traction.

13 Likes

I expect this will involve mapping sidewalks as separate geometry, but expressing the relationship to the road in a machine-readable fashion. Some solutions have been suggested (e.g. the is_sidepath:of:name=* tags), but so far, none have gained traction

there is also the proposed relation type=area (relations can express the relationship between parallel ways unambiguously, but it means we would need a relation for every road)

From my point of view, the trend will go towards separated path geometry, as the map detail level will more and more increase and also the routers capabilities will follow this trend.

5 Likes

As a developer of both rendering and navigation software, I can attest to this tradeoff. Sidewalks need to be associated with roadways for pedestrian navigation using wearables and especially for assistive technology for visual impairment. The latter use case relies exclusively on voice guidance, so the street name is essential, but so is accurate data about obstacles. I’ve seen at least one wearable application configure Valhalla’s costing model to avoid sidewalk ways just to get road names in voice guidance, but it’s clearly suboptimal.

Despite this tradeoff, I lean in favor of separate ways. Tags on ways are inherently incapable of representing geometries effectively, whereas the problem of associating sidewalks with roadways is hopefully solvable. In regions like mine where sidewalks are generally separated by a curb or verge, if someone is willing and able to draw separate sidewalk ways, I think they should be encouraged to do so. Eventually someone will have to draw the ways anyways, so we should take advantage of that zeal when it arises.

Some cities have been adding name or street:name to sidewalks. In principle, data consumers should be able to infer that the sidewalk and roadway are related by comparing their names, in much the same way that Nominatim matches addr:street to road names or Skeletron generalizes dual carriageways based on road names.

I suspect this approach hasn’t caught on more broadly because of the assumption that data consumers can already infer these associations based on geometry alone, or maybe based on sidewalk=separate. Unfortunately, a typical city abounds in cases that violate this assumption, requiring a more explicit approach.

As a counterpoint, if the sidewalks are only tagged on the roadways, a non-sidewalk footpath would also need virtual connections with roadways to avoid breaking pedestrian routing. Here are some trivial examples of non-sidewalks that would result in oversimplified routes if connected directly to a roadway without separate sidewalk ways:

Long ago, I started out using the sidewalk key exclusively. Over time, I discovered a steady stream of these edge cases, each one necessitating an oasis of more detailed mapping, until the point where it just made common sense to link the oases together with separately drawn ways.

8 Likes

Just to be clear - you’re saying that it isn’t legal to walk from e.g. https://www.openstreetmap.org/way/1050626633 to https://www.openstreetmap.org/way/1050626542 without going via Allegro Lane? That seems totally bizarre**. I can understand you wanting to model kerbs etc., and need “sidewalks as separate ways” for that, but what you seem to be saying here is that there is no alternative route?

** silly examples do exist of course - in the cycling world https://www.openstreetmap.org/way/303553186 is a link between a route along a main road and another cycle route, but relies on people either cycling along a busy main road for a bit or leaping up a kerb and across a few meters of grass.

1 Like

Technically, taking a shortcut across Abby Way would require trespassing on private property (the verge), followed by jaywalking. Obviously, this is quite pedantic next to a park in a quiet subdivision, but the laws are on the books. Anyhow, the legalities matter less than telling the user something helpful. A mapper could sarcastically tag the whole park as a pedestrian area if no sign forbids walking on the grass, but the reason someone would consult a map or a router is to know where one is expected to go, whether they end up listening to the router or taking a shortcut.

I understand that jaywalking is a completely foreign concept in some countries. But putting that aside, hostile architecture and facepalm moments are surprisingly common in many parts of the U.S., where pedestrian infrastructure is often built for reasons other than facilitating travel on foot (like aesthetics). The #sidewalks channel in OSMUS Slack is a perpetual blooper reel. Hopefully this helps to explain why there’s so much enthusiasm for mapping sidewalks and crosswalks in greater detail.

Highland and Madison Canary Lane Nantucket blocked

9 Likes

Technically, taking a shortcut across Abby Way would require trespassing on private property (the verge), followed by jaywalking.

around here the verge is “always” part of the legal highway property

I understand that jaywalking is a completely foreign concept in some countries.

how many countries are there that have this concept? From a European perspective, apart from motorways, it is indeed a very foreign concept, and I would be astonished if the situation was different in Africa or central Asia.

Usually you can cross the street anywhere, maybe not in theory if there are signed crossings in the proximity (like 100m), depending on the jurisdiction

As creators of a detailed cycle routing engine, we support the use of separate ways.

Fundamentally, a separate way makes it easier to give more detailed information about the path, e.g. width, surface, etc., and more accurately reflects the reality on the ground.

However, it must be done carefully, e.g. proper connectivity, ensuring street names are included, etc.

The question of separate paths is addressed in significant detail in our State of the Map 2019 conference talk:

11 Likes

Great talk. I watched it a second time. Has your thinking on the street area and junction area ideas evolved at all since then? Is the area:highway key moving in this direction?

As a European who has moved to the United States 11 years ago, I can attest to the peculiarities of U.S. pedestrian infrastructure from a European perspective. Just a couple of examples:

When I moved here I was a strong proponent of mapping sidewalks as attributes on the street. Don’t make things more complicated than they need to be. I quickly changed my mind. Someone already mentioned that mapping sidewalks as attributes creates a need to split ways into tiny segments in some places because the random nature of sidewalk coverage. Access limitations further complicate this: some sidewalks are wide enough (and with high enough quality of paving) to allow for wheelchair access, but very often this is not the case:

15 Likes

Great talk. I watched it a second time. Has your thinking on the street area and junction area ideas evolved at all since then? Is the area:highway key 1 moving in this direction?

Yes, the area:highway and area:highway + junction=yes tagging schema are looking very promising. The existence of area:junction would be preferable though.

The excellent work here vindicates the benefits of adding area-based mapping to supplement the existing linear data:

3 Likes

Those excellent examples from Martijn van Exel show why you can’t really produce really good pedestrian routing without such detail.

3 Likes

I have a personal rule I follow at the moment for when, or when not, to add a sidewalk. “Is the road generally safe to freely cross at any point?”

Given this rule, where the road is quiet (typically highway=residential) I map sidewalks as part of the main highway using tagging like sidewalk=both.

For busy main roads, knowing exactly where to safely cross, and how to navigate around, is much more important. See this part of London for example, where there are plenty of footpaths around a busy flyover junction, but pedestrians need to know where they are. As such, I use highway=footway, footway=sidewalk (or footway=crossing) and surface=paved (etc). And always add sidewalk=separate to the main road itself.

I also always try to map highway=crossing, crossing=unmarked, crossing:island=yes/no, kerb=lowered/normal and tactile_paving=yes/no at all places where the sidewalk meets a road greater than a service road.

Where you need to end the separate sidewalk and just make an artificial link to the road, I recommend marking that small artificial link with footway=link (and ignoring any validation errors).

1 Like

Presumably footway=link is not rendered on osm.org? It doesn’t seem to be supported by any common (routing) applications, so I’m wondering what the value is of creating these?

1 Like