-
Notifications
You must be signed in to change notification settings - Fork 3
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
Unresolvable way overlaps #65
Comments
Where are these examples located? |
I am getting an error for osm_extracts/streets/milano_01.osm in the method |
There is at least one ID of a way-section present in [idx for idx in set(abs(idx) for t in manager.transitionSymLanes for idx in t.connectors) if idx not in manager.waySectionLines] It can be placed wherever the variable |
The reason were polygons of The issue of unresolvable path overlaps is still open. Currently, these paths are removed. |
What is the reason that an intersection is not computed for the cyan point? |
This is simply due to my temporary solution of excluding such way segments from further processing. I still have no good idea what else to do with them. |
They are different. The branching way segment in milano_01.osm (left image) overlaps the second path along its entire length. Its end, and thus the intersection there, is still partly within the other way segment. In berlin_karl_marx_allee.osm (right image), on the other hand, the branching segment completely leaves the other way segment, so there is no intersection overlap. |
I suppose so. I have already thought about this possibility. Another solution might be to adaptively adjust the width of such conflicting way segments. This is a bit difficult to program. Imagine that the intersection of the three way segments at the bottom right has been calculated (without problems), while later the calculation of the intersection at the top left reveals the problem. Changing the width of the ways now also changes the result of the intersection at the bottom right. This is somehow similar to changing list entries during a for loop? |
The number of lanes is not given for those OSM-ways in the OSM database. So halving of the width for For a general case, I would suggest creating a polygon for the whole conflict area. |
What do you see as the criteria that distinguish this case from the general cases? |
No specific criteria. If way-segments intersect like in milano_01.osm, then it's a general case. |
If I understand that correctly, a change of the width of a way-segments affects only the intersections connected to the way-segment, i.e. the polygons for the intersection must be regenerated. Is it correct? |
Yes, I think so. |
I suggest generating a polygon for now. Adaptive width adjustment can be later used for clusters. |
This is what I am currently studying. Clusters will make the problem even more complicated, because several intersection areas now constructed individually may be merged then into a larger area. I am not sure yet if it would be better to wait with the construction of the intersection areas until the clusters are defined. Is it important for your development that I fix this problem now, maybe just temporarily with a patch, or can it remain unfixed for a while (I don't know how long)? |
Having a code to process clusters is more important. |
There exist way segments, that overlap each other. A typical situation is shown in the left image below. The end of the cyan segment still overlaps the other way segment above it. The cyan dot is the node of the intersection to be processed. The right image shows the result of the processing by the current code, where this intersection remains unprocessed.
It is easy to detect these segments, one of their endpoints is inside a neighboring way polygon. If the way boundary to such an endpoint leaves the other way before re-entering it, the intersection area can be calculated correctly:
We need ideas on what has to be done with such cases. Currently, these ways are removed from the intersection to compute its area, but remain as ways.
The text was updated successfully, but these errors were encountered: