<div dir="ltr">> The following pedestrian router already seems to work quite well with sidewalk=* tags and highway=crossing nodes (examples):<div><br></div><div>When something "works" 99.9% of the time, it's the edge cases that matter. But, because this is a network problem, a single edge case can disrupt tons of paths.</div><div><br></div><div>Here's an example (drawing from your very nice diagrams): <a href="https://wiki.openstreetmap.org/wiki/File:Ambiguous_sidewalk_and_crossing_via_street_metadata.svg">https://wiki.openstreetmap.org/wiki/File:Ambiguous_sidewalk_and_crossing_via_street_metadata.svg</a></div><div><br></div><div>Attempting to use this schema requires doing two things:</div><div><br></div><div>(1) We infer a set of sidewalk paths from street metadata, usually guessing about the offset distance. This ends up being an important source of errors in the routago example in Zollikofen.</div><div><br></div><div>(2) We infer street crossings from guesswork that uses street topology, distances, and any other number of rules we can make up because we don't actually know for sure which crossings can be used by which sidewalks.</div><div><br></div><div>In the case of the marked crossing on top, which sidewalks can use it (i.e., how should we create our routable graph)? Visually, it is clear that the marked crossing is to be used by the sidewalk associated with the rightmost street. However, a heuristic approach could easily identify it as usable by the other street's sidewalk as well: it is in the correct topological location (a 'right turn' from an incoming sidewalk) and a short distance from the intersection (x). Even with more complex heuristics, like assigning crossings to the nearest intersection, we still get errors depending on the exact sizes of x and y: perhaps, sometimes, it's usable by both. This would be no issue were the connections mapped directly.</div><div><br></div><div>There's a similarly complex example here: <a href="https://www.openstreetmap.org/#map=19/47.71953/-122.31794">https://www.openstreetmap.org/#map=19/47.71953/-122.31794</a>. Attempting to figure out exactly which crossings can be used by which sidewalks is a bit of a mess due to the proximity of different sidewalk endpoints to nearby crossings.</div><div><br></div><div>This guesswork means the pedestrian paths are uncertain. Imagine if our street networks were like this, not knowing how they connect to oen another!</div><div><div><br></div><div><div>> <a href="https://www.routago.de/pedestrian-routing/?map=46.9802955,7.421488,19&start=46.9798388,7.4200845&ziel=46.9800291,7.4229276" rel="noreferrer" target="_blank">https://www.routago.de/pedestrian-routing/?map=46.9802955,7.421488,19&start=46.9798388,7.4200845&ziel=46.9800291,7.4229276</a></div><div><div>> <a href="https://www.routago.de/pedestrian-routing/?map=46.9932946,7.4567288,18&start=46.9936495,7.4545938&ziel=46.9927603,7.4568951" rel="noreferrer" target="_blank">https://www.routago.de/pedestrian-routing/?map=46.9932946,7.4567288,18&start=46.9936495,7.4545938&ziel=46.9927603,7.4568951</a></div></div></div></div><div><br></div><div>These examples exhibit other issues, though I'll skip the first one because they're small. The second (Zollikofen) has very clear errors resulting from this schema: when crossing Zelweg, routago predicts four maneuvers: (1) turn left to get to the start of the crossing, (2) turn right and get on the crossing, (3) get off the crossing and turn right (while not called out, it's visually there), and (4) turn left to get on the sidewalk (or pedestrian lane, as it is one).</div><div><br></div><div>None of those maneuvers are actually required or implied by the on-ground realities: <a href="https://www.mapillary.com/app/?lat=46.99333843&lng=7.45498349&z=17&focus=photo&pKey=wtKKmazts0SR6pNE8J_8FA&x=0.8600724394834813&y=0.5148842924762222&zoom=0">https://www.mapillary.com/app/?lat=46.99333843&lng=7.45498349&z=17&focus=photo&pKey=wtKKmazts0SR6pNE8J_8FA&x=0.8600724394834813&y=0.5148842924762222&zoom=0</a>. You can see the crossing on the left. In reality, the path taken by most pedestrians will be direct, requiring no particular turns of any kind.</div><div><br></div><div>These errors are an artifact of not knowing where the sidewalks and crossings actually interface and having to guess about them.</div><div><br></div><div>Aside from producing errors, this guesswork is highly technical and not something the vast majority of interested data consumers can do, which limits the value of the data to a very small set of computer scientists or extremely enthusiastic programmers + GIS enthusiasts with a background in graph theory, geospatial analysis, and constructive geometric methods. In contrast,  pedestrian ways that are directly connected to one another can be analyzed using any transportation network software and are compatible with common OSM routers.</div><div></div><div><div><br></div><div>> I use highway=footway + footway=link connect steps and sidewalks to a road, in order to retain the real length and geometry of the steps or</div>sidewalks and to indicate that these aren't steps or a sidewalk anymore, but part of the carriageway of the road. Other mappers seem to use this scheme too (already 743 uses and only every 7th is from me).<div><br></div></div><div>Neat! I really like that proposal and would be interested in chatting about other potential use cases.</div><div><br></div><div>Thanks again,</div><div><br></div><div>Nick</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Nov 16, 2019 at 2:25 AM Markus <<a href="mailto:selfishseahorse@gmail.com">selfishseahorse@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tue, 12 Nov 2019 at 23:54, Nick Bolten <<a href="mailto:nbolten@gmail.com" target="_blank">nbolten@gmail.com</a>> wrote:<br>
><br>
> > You mean a situation like this?:<br>
><br>
> > <a href="https://wiki.openstreetmap.org/wiki/File:Sidewalk_and_crossing.svg" rel="noreferrer" target="_blank">https://wiki.openstreetmap.org/wiki/File:Sidewalk_and_crossing.svg</a><br>
><br>
> One very similar to that, yes! I think I normally wouldn't add sidewalk=both to any length of the highway=residential. Is that a typical thing to do? I would assume that meant the highway=residential street had its own short piece of sidewalk, when it actually doesn't.<br>
<br>
You're right, sidewalk=both doesn't make sense in that example. I use<br>
this tagging only when the junction and the sidewalks are curved. I've<br>
updated the drawing to better represent the situation.<br>
<br>
> The challenge I'm describing is in reliably associating the crosswalk with the pedestrian paths. After all, the crosswalk is a node on a different street way. I know that I could do it 99.x% of the time, but it will require using some graph traversal approaches that most people aren't familiar with. Plus, those cases where I couldn't reliably determine it could be very important. I suspect this is one of the reasons I haven't found anyone using these data in concert (sidewalk=both + highway=crossing) to do pedestrian routing.<br>
<br>
The following pedestrian router already seems to work quite well with<br>
sidewalk=* tags and highway=crossing nodes (examples):<br>
<br>
<a href="https://www.routago.de/pedestrian-routing/?map=46.9802955,7.421488,19&start=46.9798388,7.4200845&ziel=46.9800291,7.4229276" rel="noreferrer" target="_blank">https://www.routago.de/pedestrian-routing/?map=46.9802955,7.421488,19&start=46.9798388,7.4200845&ziel=46.9800291,7.4229276</a><br>
<a href="https://www.routago.de/pedestrian-routing/?map=46.9932946,7.4567288,18&start=46.9936495,7.4545938&ziel=46.9927603,7.4568951" rel="noreferrer" target="_blank">https://www.routago.de/pedestrian-routing/?map=46.9932946,7.4567288,18&start=46.9936495,7.4545938&ziel=46.9927603,7.4568951</a><br>
<br>
(However, it seems that it prefers minor roads and paths over distance too much:<br>
<br>
<a href="https://www.routago.de/pedestrian-routing/?map=46.9931482,7.4576354,17&start=46.9936495,7.4545938&ziel=46.991809,7.4570239" rel="noreferrer" target="_blank">https://www.routago.de/pedestrian-routing/?map=46.9931482,7.4576354,17&start=46.9936495,7.4545938&ziel=46.991809,7.4570239</a>)<br>
<br>
> > I would simply connect the sidewalk way with the road where the<br>
> sidewalk ends (and map a barrier=kerb + kerb=* node) and add<br>
> pedestrian_lane=* to the road starting from where the pedestrian lane<br>
> begins.<br>
><br>
> So there would be a segment of footway=sidewalk that is not actually on a sidewalk? I've been unsure about what to do in similar situations, like how to connect footways to roads without implying there's literally a footway on top of the road. Probably worth its own, separate discussion (it was discussed previously, but without conclusion), so I won't elaborate.<br>
<br>
I use highway=footway + footway=link connect steps and sidewalks to a<br>
road, in order to retain the real length and geometry of the steps or<br>
sidewalks and to indicate that these aren't steps or a sidewalk<br>
anymore, but part of the carriageway of the road. Other mappers seem<br>
to use this scheme too (already 743 uses and only every 7th is from<br>
me).<br>
<br>
<a href="https://wiki.openstreetmap.org/wiki/Proposed_features/Tag:footway%3Dlink" rel="noreferrer" target="_blank">https://wiki.openstreetmap.org/wiki/Proposed_features/Tag:footway%3Dlink</a><br>
<br>
Best regards and a nice weekend to all of you<br>
<br>
Markus<br>
<br>
_______________________________________________<br>
Tagging mailing list<br>
<a href="mailto:Tagging@openstreetmap.org" target="_blank">Tagging@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/tagging" rel="noreferrer" target="_blank">https://lists.openstreetmap.org/listinfo/tagging</a><br>
</blockquote></div>