-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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? |
Here another example of broken route relations (of a public transport version 2). This relation is a "special" case : the bus arrives at a roundabout, follows a loop, comes back to the roundabout and continue on another way. The roundabout is here : https://www.openstreetmap.org/edit#map=20/4.88977/-52.33256 Select the roundabout then select the relation "Bus 9 : Encre -> Lycée Balata" : the current version (27) of this relation is ok (I mean the order of the ways) : the roundabout is twice in the relation with ways between them (the loop). Now select the way on the right of the roundanout (https://www.openstreetmap.org/way/362487805) and cut it. Select the route relation and look at the order : the 2 roundabout ways are one after the other and the loop is broken (the first way of the loop in no more at the good place : there is a gap between the roundabout and the parking_aisle). This issue was opened almost 3 years ago, same thing for the issue #8578 : could you please look at them quickly and fix (at least) this special case ? |
This issue is certainly still not fixed. Most recent example I've stumbled upon: Unfortunately it is a commonly recurring annoyance, but I wonder whether providing more examples regularly would be of any help? |
I do not think it is. At least unless there is work being done on the issue which I do not see happening any time soon. |
this might be the same issue as #7653 |
This relation contains this entire roundabout twice, which makes the route non-linear. If we were to split the roundabout, modeling the actual path of the vehicle through it both times, then it would be linear and iD would be much less likely to scramble the member order. #7653 compounds the problem, but as long as a full roundabout loop is part of the relation, scrambling could occur even if the full relation is loaded. |
this should be fixed with #10149 |
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: