-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for foot=use_sidepath
/ sidewalk=separate
#4790
Comments
ew. mapping sidewalks (and bike lanes) as separate ways is an annoying practice that should be reversed when ever possible :-) |
I agree, but the local communities in Denver, San Jose and Washington DC don't feel that way. This is causing real issues for our pedestrian routing in these cities and ignoring the center-line streets is at least a work-a-round that make it less bad. |
oh boy i've seen some spaghetti intersections based on this type of modelling. |
Modeling bike lanes as separate ways is a separate issue from modeling sidewalks as separate ways. The distinction is that sidewalks in these cities generally have “limited access” to the road, whereas bike lanes are part of the road. So in San José, for instance, sidewalks are mapped separately while bike lanes are just |
not sure what you mean by limited access to the road? |
Sorry for hand-waving there. In much of North America, the norm is that a sidewalk is separated from the roadway by a verge, so a router would ideally only have a pedestrian leave the sidewalk and cross the road at crosswalks or perhaps driveways. By contrast, a typical bike lane is only separated from vehicular traffic by a pavement marking. Since the vehicular lanes are modeled together as one way, so would the bike lane be modeled together with them. As far as I can tell, the presence of a verge is the main reason for modeling sidewalks as separate ways. I’d imagine some protected bike lane designs would be mapped as a separate way by the same reasoning. Hopefully instances of |
Perhaps alternatively you can penalize unnamed sidewalks that are along roads? Thus keeps on using the roads? Also sometimes one might want to keep the sidewalk=left and sidewalk=right tags, even though sidewalks are tagged as separate ways. This preserves compatibility with OpenTripPlanner which is moving to support those tags. |
Penalties could only be applied to graph edges, but the problem that motivated this issue is that the sidewalk ways themselves bloat the routing graph.
How would routers and renderers distinguish this tagging scheme from the scheme in which sidewalks aren’t modeled as separate ways? (Imagine a renderer that synthesizes sidewalks based on |
Should we treat this issue as a duplicate of #1171? |
Sidewalks are often mapped as separate footpaths because it's a more appropriate description - they have their own geometries and interface with other features several meters away from the centerline of the road, often with several barriers between the road itself and the sidewalk. Please do not revert them or advocate for reverting them. I tried to keep my 'reasons to map this way' brief but kept failing, so sorry for the length: (1) First, geometrical accuracy. Sidewalks are separated ways in some way or another, otherwise they'd just be part of the street - they are separated by markings, bollards, raised curbs, verges, etc. They are several meters removed from the street centerline, and do not need to match the street's geometry with a consistent offset. Whether sidewalk users can also transition to the street varies widely. In addition, as mentioned by @1ec5, they interface with other footways and driveways, and they do so several meters removed from the street centerline. (2) Second, semantics and connectivity: sidewalks connect to one another via crossings (or other footways), and this is awkward to represent with street centerlines and crossing nodes. Let's take a situation where you want to use crosswalks preferentially. As footways, you can just draw a continuous way and split it into types - sidewalk, crossing, etc, and routing along them is the same approach as for streets, just use the way network + tags. As street metadata, you are in this curious situation: route along the street, keeping in mind what side you are on. When you meet a street, travel 'up' it if it's on the correct 'side' during approach. If you encounter a (3) Third, it massively clutters and complicates street centerlines once you have to add even just a little more metadata. Adding just sidewalk width and surface changes means splitting the way every time one of those facts changes, which happens to be pretty often. A semi-randomly selected sidewalk near the University of Washington (my area) has ~3 surface changes and 7 width changes, which would mean splitting the street centerline 10 times. And that's just for one sidewalk - the other side also has a sidewalk that can vary in other important, pedestrian-relevant attributes. Also, due to reason (2), if a router ever wants to properly handle side-of-street and crossing information, it'll need to expand the graph anyways or embed a lot of extra state into the routing algorithm to keep track of the fake 'turns'. Finally, there's going to be lots of footways near streets anyways, as OSM becomes more complete, so the challenge of selecting footways vs. streets is there no matter what. So in summary:
|
You dont need ugly sidewalk modeling for the need of foot=use_sidewalk |
I'll point out that cycle tracks are unambiguously supposed to be mapped seperately, and also make use of the similar bicycle=use_sidepath and cycleway=separate tags. The former is particularly important, since it means right now OSRM is giving directions that would be illegal to follow. I'll also add a +1 to mapping sidewalks as separate ways, and note that it's standard practice in Canadian cities. Mapping the interaction between cycleways, sidewalks, and crossings would be a nightmare using tags alone. |
Unlike Tag usage for It would probably help if someone with some affinity with the tags ( To the best of my knowledge |
Any news on this? |
Roads tagged foot=use_sidepath (and sidewalk=separate) are still used for pedestrian routing. Is there any chance to change it? |
@Henryk14: (With regards to my comment from 2019 above: the |
@jdhoek I completely agree with you, @TheMarex and others, that routers shouldn’t generate a pedestrian route over roads tagged with foot=use_sidepath but apparently OSRM (and also GraphHooper) still does it. The question is: can we do sth about that? If there are no plans to change the routing algorithm, then maybe tagging foot=use_sidepath should be abandoned, and foot=no should be used instead? |
just add 'use_sidepath' to the access_tag_blacklist array in the foot profile and it will work well! |
It shouldn't be too hard to fix, nor controversial. I contributed 92406da two years ago where |
I'm new to OSRM. Can somebody help with that? |
In the foot profile
to these lines:
|
But be advised that some parts of the world are not completed/validated for the use_sidepath tag. In the Montreal area (Canada), we are building a team right now to sanitize and validate all the routing data (around 10% done so far, WIP). Most of the time, there are missing connections between sidewalk/footpaths and the rest of the road network, so be careful. |
@jdhoek @kaligrafy |
I'm only an outside contributor, so I'm not qualified to say anything official about the patch. Thanks for taking the time to try to fix it though! First: have your PR target the Personally, I would recommend adding a comment like I did in 92406da, add a similar line to Running the tests may be tricky, but someone will probably step up to help with that in the PR. |
This issue seems to be stale. It will be closed in 30 days if no further activity occurs. |
Not stale, still needs discussion and concensus. mapping sidewalks as separate ways will not disappear and is docuemnted officially, so we need to discuss how to deal with foot=use_sidepath. I propose to add it to both the blacklist and the restrited so the routing can use it at the beginning or at the end of the route to connect to a POI or precise location. |
This issue seems to be stale. It will be closed in 30 days if no further activity occurs. |
Several communities in the US have started to map sidewalks as separate ways, even if they are attached to the main roads. This degrades the quality of our routing as we route on the main road and the sidewalk, generating erratic routes, problems with snapping and blowing up the size of the road network artificially.
There are two tagging schemes that mark roads that have a detached sidewalk:
foot=use_sidepath
andsidewalk=separate
. Roads tagged like that should not be included in the routing graph anymore.The text was updated successfully, but these errors were encountered: