Announcement / request for comments: naming sidewalks in Toronto

Update: I will not be doing this, see post 48


Hi all,

This is a heads-up that sidewalks are now being given names in Toronto. I believe this is an improvement. I welcome comments. If this is accepted by the community, I would add a note about it to the Toronto OSM wiki page.

Longer introduction

Sidewalks were mapped as separate ways in Toronto and surrounding area quite early on. With imagery available at the time, they were often not particularly accurate, and if I may say so, were often mapped with focus seeming to be on quantity over quality: geometry was poor, crossings were not split out, and the sidewalk ways were often kilometres-long.

I saw sidewalks have names in Montreal, and we also agreed that separate cycleways should have names. So I decided to start doing the same in Toronto (example way). I saw PcMouse1 has joined in (example) – I didn’t message them about the idea so it must have been organic.

A couple of these changes were reverted, apparently by mappers thinking them an error (1, 2), so I want to make a higher-profile announcement now.

Rationale

Sidewalks mapped as nameless ways make text or voice routing impossible.

Here are sample routing instructions from Valhalla in Toronto:

Distance: 517m. Time: 0:06.
1. Walk south on the walkway. 140m
2. Turn left onto the walkway. 90m
3. Turn right onto the crosswalk. 20m
4. Turn left onto the walkway. 110m
5. Turn right onto the walkway. 100m
6. Turn left onto the walkway. 60m
7. You have arrived at your destination.

And here are sample routing instructions from Valhalla in Montreal:

Distance: 492m. Time: 0:06.
1. Walk southeast on Rue De Lanaudière. 300m
2. Turn right onto Avenue du Mont-Royal Est. 50m
3. Turn left onto the walkway. 20m
4. Turn right onto the crosswalk. 10m
5. Bear right onto Avenue du Mont-Royal Est. 50m
6. Turn left onto Rue de Brébeuf. 80m
7. You have arrived at your destination.

Potential objections

  1. Won’t having the street name duplicated cause confusion? Not any more than currently - we already have street name duplicated whenever the roadway is split even by a traffic island and on divided carriageways. In extreme cases we already have the street name four times.



    In practice this looks fine to me in Montreal:
    image

  2. This is too much work. Mapping and cleaning up sidewalks as separate ways was always going to be a lot of work. Nevertheless that has been the norm here for over 10 years so that’s not going to change. If the ways are being kept, I want them to at least be useful. I appreciate that retrofitting the currently mapped sidewalk ways will be a very large task that might never be finished, but that’s true of many things in OSM (e.g. keeping POIs up to date).

  3. Is name tag appropriate? There are suggestions for is_sidepath:of:name and street:name but in practice these tags are not read by any relevant data users and even if they start being read, name will likely continue being read as well. I understand the objection “the sidewalk itself doesn’t have a name!” but given that the data model we use is a stretch of reality (is it really two separate “highways” when split by a traffic island? is the sidewalk not part of a street?), I believe we should work with what we have, and name isn’t wrong.

  4. Should I start doing it now? Up to you – I think setting names would be decently easy to do when drawing new sidewalk ways, but I don’t expect anyone else to necessarily join in.

  5. Won’t they be mapped badly? That’s always a risk and there’s already sidewalks mapped poorly, e.g. as islands around a block without drawing crossings so they’re actually useless for routing. I would add a couple of precautions on the wiki page, for example matching the street name and not including the description “sidewalk” in the name, paying attention to where the sidewalk way is ending (so the name doesn’t wrap around a corner onto the wrong street) and making sure to map crossings - basically following current practice in Montreal (see around this way for what looks good to me).

5 Likes

OSM US has created a pedestrian working group that focuses on mapping sidewalks in separate ways. As you said, mapping sidewalks is a lot of work. But then it is not a priority to big companies like Google because there is no money in it. But it makes a huge difference to pedestrians, especially those with accessibility issues. I applaud your work.

I agree that naming sidewalks would be nice but I believe that is something that routing software should do. Especially sidewalks parallel to the street. Considering that some routes point out businesses where you are supposed to turn, it shouldn’t be that much more difficult to give the adjacent street name to the sidewalk. That being said, I have no clue how routing software works.

4 Likes

Currently routing software doesn’t do this so if we tag name it’ll help them

If and when routing software does it, the name tag won’t hurt them

So name helps now and won’t hurt in the future, which is why I decided to start adding it

1 Like

Had not get any downsides to it in Montreal so far and we have been mapping sidewalks with name for at least 4-5 years now. It is not yet complete, but some neighbourhoods have been validated/completed. Automating this could work for most streets, but there are many complicated geometries where you need “human” intervention to figure out the correct name to put, and where to split on the corners. One example is in roundabouts, should we remove the names there or try to figure out to which street each segment is related to? Alongside this, I’m still waiting for a way to train an AI to propose osm edit/validation/completion with human review. I think we are not so far away!

3 Likes

I’m in favor of adding street names to sidewalks and bicycle sidepaths, but I feel that street:name would be better than name. name is used for the actual names of independent footways and cycleways so using it for the name of the overall street on a sidewalk or sidepath overloads the meaning of name + highway=footway and name + highway=cycleway. A data consumer wishing to treat street names differently than independent footway and cycleway names will have a harder time with this.

8 Likes

I appreciate this issue. I wish routers would add support for street:name and is_sidepath:of:name now. (Because of course there are two competing new tags.) But my counter-thoughts are:

  1. Vast majority of sidewalks (footway=sidewalk) will have only a street name. Footways that aren’t sidewalks can be treated differently by data consumers if necessary. Also, retagging footway=sidewalks to change name to street:name could be done later if warranted and would go a lot faster than adding the name in the first place.
  2. It’s not clear to me that the difference between distinct name and street name is significant in practice: in which cases would it matter? I’m struggling to come up with a concrete example. I’m also thinking that most of the time a local human sees the output of a data consumer, they will be able to recognize the difference.
  3. I feel that “better is the enemy of good” applies. Useless text routing is happening here and now.
1 Like

Do you feel that street:name would be better than is_sidepath:of:name? The latter is seeing more consistent adoption: osm tag history

I guess I don’t entirely mind double-tagging with both name and is_sidepath:of:name for the transitional period until routers adopt the new tag.

3 Likes

I find is_sidepath:of:name to be an unnecessarily verbose, unintuitive, and awkward key. It sounds like the tagged object is a sidepath of a name, whatever that would mean. street:name is clear and to the point. It’s quite obvious that it means “this is the name of the street”.

Here is an example of a bicycle path named the Lunken Loop. For part of its length it is a sidepath along Wilmer Avenue. Tagging this section as name=Lunken Loop + street:name=Wilmer Avenue could communicate both names to a data consumer in a structured way. Tagging name=Wilmer Avenue would erase the independent name of the path.

Thanks to @Minh_Nguyen for the example:

2 Likes

This example also highlights name collisions for cycleways and other Rails-to-Trails programs. A local government may name a subsection of a larger bike route.

2 Likes

The way in question is not tagged as a sidewalk, and will not be tagged as a sidewalk because iD presets are to tag MUPs as cycleways

I do not propose to retag footways with existing non-street names. I thought your concern was that a data consumer would not be able to tell if the tagged name is a name or a street name. What is an example of a concern with that, specifically?

This thread is about sidewalks

1 Like

I appreciate the goal of keeping the conversation focused, but you did also bring up cycleways in the first post.

Sidewalks and bicycle sidepaths are quite similar in the ways they relate to streets, so it’s natural to discuss tagging schemes for them in conjunction.

1 Like

Ok, done. (Or at least, I’ve tweaked cycle.travel’s routing code and it’ll show through on the next routing update.)

9 Likes

Here you go: Way: ‪Humber River Trail‬ (‪58023531‬) | OpenStreetMap

If lots of other sidewalks use name to indicate the name of the street, how is a data consumer to know that in this case name=Humber River Trail is the name of the footway only, not the street?

1 Like

Impossible is a very strong word. :wink: Lately, I’ve been tinkering with a solution based on an off-the-shelf map matching service that doesn’t require any special tagging in the general case. It’s pretty easy to supplement the anonymous maneuver instructions with street names, but this only highlights the extremely poor state of pedestrian guidance instructions in the mainstream routers. Even with street names, I’d get totally lost with these instructions, which are far too granular around intersections for most pedestrians and wheelchair users but not granular enough for blind people. I’ll leave the details for a separate thread to keep this one more focused.

If you’re open to another example from south of the border, the first one that comes to mind is the Walk of Fame in Hollywood. If we start indiscriminately tagging name=* on sidewalks, it’s only a matter of time before renderers add a blanket rule to suppress labels on sidewalks to reduce clutter and prioritize the street’s label, impacting more remarkable cases like the Walk of Fame. A data consumer could potentially rely on a heuristic to preserve the name if it differs from the street’s name. However, this can be fragile as some mappers tend toward descriptive naming.

I also wonder what to do with sidewalk “stubs”. Very often one of these curb ramps or connections serves more than one street. These tiny segments won’t matter too much for a renderer, but a router would surface them. There also seems to be some hesitation within the community about consistently splitting them from the main ways.

1 Like

Actually I’d guess that the “Humber River Trail” here is really a route relation (although obviously there’s been lots of discussion about “what is a trail and what is a route relation”, mainly in the USA, previously).

1 Like

Just one data point, but for my own use I’ve always removed copied-over road names to make routing more intuitive :slight_smile:

Edit: In case it’s not clear, this is “removed within the thing consuming the OSM data”, not “removed from OSM” :slight_smile:

1 Like

Nice! I am a big fan of cycle.travel’s router. Now I’ll have to ask you to set up https://foot.travel :slight_smile:

Oh hey, near my neighbourhood! I’ve been there several times. It is actually a illustrative example, because this sidewalk is mistagged. It’s a sidewalk of Stephen Drive which forms a part of the Humber River Trail. It’s the world’s most ordinary sidewalk and is not signed “Humber River Trail”; at most there might be trailblazers at either end. If someone in that area got a direction to “walk on Humber River Trail” when the router wanted them to walk down Stephen Drive, they would likely be confused and wonder which ravine trail they should walk down.

The Humber River Trail is mapped as an lcn relation. Near this specific sidewalk it’s mapped on the roadway, because bicycles use the painted on-road bike lanes. (The trail is a multi-use trail - both lwn and lcn - but I really hope this thread doesn’t get into how multi-use trail relations should be tagged.)

I think that having a sidewalk with name=Stephen Drive being a part of a relation with name=Humber River Trail would be an accurate depiction of reality here.

What difference does it make in practice? What is a concrete purpose for a data consumer for knowing whether it’s the name of a footway or of a street?

The only thing I’m coming up with is not rendering the name on a map tile because the renderer thinks it’ll increase clutter, but in practice that hasn’t really turned out to be the case in Montreal.

Honestly, I really applaud that, I hope it succeeds, and I hope pedestrian routing improves a lot, soon. But until then, I still want useful pedestrian directions, and I don’t really see why I shouldn’t achieve them while waiting for a solution that might or might not come. To put it bluntly, your post is from May 2022, two and a half years ago - had I started adding sidewalk names at that point, I would have a substantial chunk of west end Toronto covered.

Empirically this hasn’t happened in Montreal. Even carto does a fairly good job of rendering Montreal (screenshot in first post looks quite nice really! do go browse around) and no one has complained. The biggest problem I can see in Montreal is repeating the name too frequently, but this is a long-standing issue in carto that affects roads as well. I doubt that a couple of people doing it in parts of Toronto will achieve the critical mass of getting renderers to suppress the name.

Or keeping it much lower tech, not suppressing names of sidewalks contained in route=foot relations like the Hollywood Walk of Fame would also work.

Nevertheless your concern is noted and I will make sure to tag sidewalks forming Canada’s Walk of Fame with street:name and is_sidepath:of:name to avoid clobbering the walk of fame name.

In Montreal these are not named which I think is a good practice that I would adopt.

Is this for rendering or for routing? Can you tell how it makes routing more intuitive? There’s a comment “we expect it to be shown via the road that this is a sidewalk for” that I don’t quite understand - how does it get shown by the road? Does Garmin always route on roads? Or does it prefer to route on named ways?

Yes, I realize it’s been a while. Your post yesterday motivated me to finally get started. It’s functional but I need to finish writing it up.

Even so, there’s a question of whether this functionality should be built into the core routing engine or the responsibility of the client to orchestrate, similar to other problems like navigable points and multimodal routing. If it isn’t part of the core routing engine, osm.org’s “raw” routing demonstration may not end up benefiting from it.

As it is, the guidance instructions in the site’s sidebar come not from the routing engine but rather from an unmaintained compatibility shim that suppresses various router features in the name of uniformity. Each routing engine has an official demo site that’s a somewhat better representation of the router’s capabilities, but to really understand what a router is capable of, you need to experience it as part of a full-fledged application. Without that context, we’re sort of tagging for… not a router exactly. But I certainly understand the desire to break through the inertia.

How sidewalks and roadways can/should be associated is a bit of an “open question” for both the PWG and OSW, so I’m glad to see that this dicussion is happening. :slight_smile:

Fair enough. I figured that might be the case. You can see how a situation like this that is not mistagged can exist though.

Using the example of Canada’s Walk of Fame, if this section is tagged name=Canada's Walk of Fame + street:name=King Street West then a router can mention both names, or just one of them depending on its requirements. If it is tagged only one or the other then the router authors don’t get that choice.

Separate name tags also make it simple and intuitive for renderers to display name on footways, while not displaying street:name. They can be confident that the same name will display on the adjacent street. If name on sidewalks is used for the street name, data consumers can still de-clutter by displaying name on footways only when footway=sidewalk is not present, but this is more complicated and it is not obvious to someone new to consuming OSM data why such a thing would be necessary. This also doesn’t work at all for the (admittedly rare) case of a named sidewalk like Canada’s Walk of Fame.

3 Likes