-
Notifications
You must be signed in to change notification settings - Fork 658
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
Fix ferry shortest path recovery #4378
Conversation
ShortestPath method in ferry_connections.cc
target classification (or better) is present at the node being expanded. Identify cases where no reclassification occurs (e.g,. islands with no edges that meet the target classification) and log the locations.
Looking for ideas on a better "termination" - identifying when "enough" edges of the proper classification are found. |
Should we add a small test for #4358 ? i.e. a map which doesn't have any edge >= kPrimary and make sure we didn't reclassify anything? |
classification is not found.
connecting to the ferry to primary. I added a test to make sure no edges are reclassified if no edges with the target classification are encountered. However, the initial ferry connection edge is set to primary even if no edges with the target classification are encountered in ShortestPath.
I added such a test. It looks like the first connecting edge is always reclassified (see comment close to the bottom of ferry_connections.cc). |
Hmpf, yeah, maybe we should do this here:
? Or smth like that, didn't check with your changes.. |
ferry_connections.cc.
classification roadways exist.
check for a valid last_label_idx being set.
…_ferry_shortestpath
to the ferry. No longer upclassed if no path to higher class edges is found.
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.
LGTM 🚢
fixes #4373
fixes #4358
Incorrect paths are frequently recovered from the ShortestPath method when reclassifying edges approaching ferries. This fixes the last_label_idx and ensures it is only set when the proper classification is reached or exceeded.
If no edges are encountered with proper classification, then no edges are reclassified. A log statement was added to identify lat,lng locations where no edges are reclassified.
For a test case of New York state I see the following for ferries that failed to find paths to the target road classification:
These all seem valid.
Tasklist
Requirements / Relations
Link any requirements here. Other pull requests this PR is based on?