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
Consider transit stop access for in station transfers #4542
base: master
Are you sure you want to change the base?
Consider transit stop access for in station transfers #4542
Conversation
this will fix in-station transfers in stop with `wheelchair_boarding` to false, when pedestrian costing use the `wheelchair` transport type.
@@ -296,8 +296,6 @@ void ConnectToGraph(GraphTileBuilder& tilebuilder_local, | |||
// Add the node and directed edges | |||
nb.set_edge_index(edge_index); | |||
|
|||
// reset the access to defaults. | |||
nb.set_access((kPedestrianAccess | kWheelchairAccess | kBicycleAccess)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keep the access mask inherited from the GTFS.
This should not break the multimodal costing which doesn't evaluate the node access, nor normal pedestrian routes since those nodes are connections between the transit graph and the pedestrian graph.
if (!pc->Allowed(nodeinfo)) { | ||
continue; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If wheelchair_boarding
was set to false
and access mask keeped on the stop node, a normal pedestrian costing won't allow wheelchair users to "walk" (unboard and board) through this node.
What I understand from GTFS wheelchair handling in Valhalla:
During a in-station transfer (changing vehicle at the same stop), I propose to call the pedestrian costing on the transit stop node to evaluate accessibility and the ability to change vehicle. |
Sounds good on first glance, thanks! Adding a test for this will be a bit of a challenge, transit costing is not really a first-class citizen in our testing framework, but it's of course possible. Let us know if you need some pointers. |
I'm curious: how did you even find out our wheelchair support? AFAICT it's not really documented, but maybe it is somewhere. And IMO this is not so bad, other than multimodal transit our wheelchair support is still quite poor. |
Oh that's simple, diving into the code 😄 There is no globally available data at this time so we have our own (highly unstable) data model and our own (highly volatiles) costings. Hopefully there will be standardized data one day, at least in Europe with ongoing work on NeTEx profiles for accessibility. So TBH we don't rely on the standard pedestrian costing, this is why in my fix the multimodal algorithm don't check the node access mask, and instead rely on whatever costing has been given as the pedestrian costing.
I will give a try and let you know, thanks. |
I have little idea (so far) what is really needed for proper wheelchair routing. I've been working in Heidelberg when they did their PoC at GIScience; I've not been involved but I remember they did a crazy effort to update OSM with sidewalks and curb info. AFAIK the wider OSM community seems to shift towards modeling sidewalks as separate entities (at least in Europe), which would help a lot in making wheelchair routing more proper. But there's also lots of people who very much don't like that, bcs it makes OSM maintenance so much harder, and I can kinda get the argument. If it's not somehow in OSM there's very little chance we'd ever be able to really support good wheelchair routing. Unless there's an ODbL-compliant derivative of OSM dedicated to that which is hard to imagine ever existing.. |
Try to fix in-station transfers in stops with GTFS
wheelchair_boarding
to false, when pedestrian costing use thewheelchair
transport type.Issue
#4540
Tasklist
Requirements / Relations