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
Route relations are broken by iD #8415
Comments
Apparently iD does attempt to do this, as seen in some tests, but perhaps there are some cases that are being handled suboptimally. |
|
Can you give example of changeset where breakage was caused by iD? |
|
|
Another example might be https://www.openstreetmap.org/changeset/101433951, where are wrongly sorted into |
|
Maybe anyone knows how to solve this or where in the code the problem is? Unfortunately, I coulnd't find it because I'm not that knowledgeable in this... |
#8839 fixes a regression in how the two ways resulting from a split are inserted into a simple linear relation. It might address some of the examples given here, even if the trickier issue with nonlinear routes remains elusive. |
|
This bug is very annoying. Just take a look at https://tools.geofabrik.de/osmi/ --> Public Transport - Routes view --> Invalid routes. I have no exact numbers, but in most cases the user changed something with iD editor. Same applied for other relations: iD breaks them. Can I ask to handle this bug with higher priority? |
|
Could it be that the solution of #8519 has fixed this issue here, too? |
When someone edits ways that are part of a route relation (like cutting a way in two, or to delete a piece and draw a new way instead), iD most often corrupts the order of relation members. Even though the order would be very important for routes. Both OSMI, Osmose and JOSM display a "relation contains a gap" error for such relations.
The situation with iD is so bad that you may check the history of FlixBus routes, for example. A great deal of the versions is about "fix the gap" or "correct order" - after someone's edits with iD. Here we are in a continuous daily work to check and fix public transport routes. And it's an endless job as they get corrupted again and again.
a.) When having a route of A->B->C and the middle way is split in two, the proper order could be A->B'->New->C, or A->New->B'->C. So far I could not deduce a sure way of telling which one will happen.
Algorithm-wise it is a simple task to decide the correct order so that chain remains intact.
b.) When adding a new way to a (route) relation, it's often added to the end of the members. Even if that way was added to mend a gap.
iD should walk along the existing relation members and check if the new way is connected to one of them. Of course, things get much more complicated in case of multiple connections (when having loops in the graph, like the two sides of a roundabout) but iD doesn't have to solve all these tricky situations perfectly.
c.) iD could also check the order of route member ways and give the user a warning.
The text was updated successfully, but these errors were encountered: