Opened 6 years ago
Last modified 12 months ago
#17400 reopened enhancement
Warn when splitting way in not fully downloaded region
Reported by: | mkoniecz | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Core | Version: | |
Keywords: | split | Cc: |
Description
Splitting a way when not all data is downloaded isn't the best practice (it will most likely break relations that weren't downloaded). Wouldn't it be possible to warn when user is doing this?
Inspired by https://josm.openstreetmap.de/ticket/16685
Attachments (1)
Change History (13)
comment:1 by , 6 years ago
follow-up: 7 comment:2 by , 6 years ago
Owner: | changed from | to
---|---|
Status: | new → needinfo |
There are already warnings for incomplete data. Please describe how you are able to split an incomplete downloaded way using JOSM without getting a warning.
If the description starts with "download an individual way without referrers", then you can stop, because this is clearly an experts-only feature and when you do that it should be expected that you know what you do.
comment:3 by , 6 years ago
Load the attached file 17400.osm (it was created with a default bbox download) and split the street "Hauptstraße" (way 253731928) where it mets the street "Bergstraße" (at node 29830834). The bus route relation number 190 gets "destroyed" as the new way is inserted at the wrong position. Note that:
- In this case even the southernd end of the way is in the downloaded area and JOSM could know the correct order for the relation (as the next segmet of the route way 253731929 is fully known).
- If both ends or only the northern end of the way is in the downloaded area then JOSM puts the new way at the correct order.
by , 6 years ago
comment:4 by , 6 years ago
Owner: | changed from | to
---|---|
Status: | needinfo → new |
comment:5 by , 6 years ago
I will give you an example with no warning:
Search in the JOSM download dialog for 'Wirme Spielplatz'. Download a small rectangle with the two bus stops and the crossroads/crossway 'Varster Straße' to 'L 728'. When you click on 'L 728' the first an last node of the way will be outside the marked download area. When yon now double click in the 'Tags/Memberships'-Window on the two bus 'R92' relations you see, that the ways in the relation before and after way 10.654.771 'L 728/Wirme' were not downloaded.
Now mark way 10.654.771 'L 728/Wirme' and node 283.324.614 (crossroads/crossway 'Varster Straße') and press 'P'. Now JOSM ask for the part of the way that will keep the ID of the way. There will be no warning because the marked node is inside the download area. All relations (currently six) are loaded so there will no harm and the is no need for a warning.
When yo now download all members of all relations you will see the problem. Look to the two bus routes 'R92'. In both relations the new way with id 0 is inserted before the way 10.654.771 'L 728/Wirme'. In one relation this is the correct order. In the other relation this is the wrong order. To get an ordered relation you must mark both ways an change the order. The same problem with the two bicycle relation '(30) - (35)'. The last two relations have a chance of 50:50 for correct order.
When you look in the 'L 728' road relation (version 16, please do not correct the relation until this ticked is solved) you will see this problem at three other positions:
- way 406.813.975 and way 139.994.260 have wrong order (created with version 8, a JOSM edit)
- the five ways from 162.746.694 to 363.559.012 have wrong order (created with version 6, a JOSM edit)
- the three way from 27.394.331 to 190.259.044 have wrong order (created with version 3, a potlatch 2 edit)
With JOSM you can easly see the gaps in ordering (and replacing the three roles 'backward' with 'forward' will fix the other errors in ordering).
The cause/reason for this problem is obvious: When the next/previous way in relation order is downloaded, then JOSM can try out which order of the two splitted way keeps the ordering of the relation (if there is any). With no downloaded ways before and after this is not possible.
Currently to my experience this JOSM problem ist main reason why sorted relations (routes, multipolygons and borders) get broken. A good example is when mappers are inserting bridges to railway.
Schö
Adjuva
comment:6 by , 6 years ago
I think there are some possible solutions for this problem:
- A warning, when a way is splitted and the next and previous ways in relation are not downloaded. The user must then download the ways by hand or must enlarge the download area.
- JOSM can ask the user to allow the download of the ways.
- JOSM can download the ways automaticaly and adds the ways to the downloaded data. The first time this occurs JOSM ask for an permission.
- JOSM can download the ways automaticaly and does not add the ways to the downloaded data. JOSM downloads the ways, makes an decision to the order of the plitted ways and dumps the downloaded data. The first time this occurs JOSM ask for an permission.
I preferr alternative 4 because JOSM should not change my downloaded data without my permission. That alternative has also the advantage that JOSM must only download the ways but the nodes of the ways. The knowledge of the ids of the nodes of the ways is enough to keep the correct ordering of the relation.
Schö
Adjuva
comment:7 by , 6 years ago
Replying to stoecker:
There are already warnings for incomplete data. Please describe how you are able to split an incomplete downloaded way using JOSM without getting a warning.
The problem ist not an incomplete downloaded way but an incomplete downloaded relation.
And the harm is not an unchanged relation but a relation with a correct way ordering before the split an a wrong way ordering after the split.
Schö
Adjuva
comment:10 by , 5 years ago
Keywords: | split added |
---|
comment:11 by , 5 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
comment:12 by , 12 months ago
Resolution: | duplicate |
---|---|
Status: | closed → reopened |
By definition it isn't possible to know if "all data" has been downloaded before you've done it.
This is already the case for areas that have been downloaded with the map API call https://wiki.openstreetmap.org/wiki/API_v0.6#Retrieving_map_data_by_bounding_box:_GET_.2Fapi.2F0.6.2Fmap but not for objects outside of that. IMHO the only safe thing to do is to not allow, or at least warn, when editing outside of areas that have been downloaded with the map call.
I assume the issue is happening mainly because people are downloading the members of a route relation and then editing members (ways), in principle it would be possible to download all relations that those members are a member of, and all ways that have common nodes with that way (and the relations that they are in turn a member of), but that is going to be slower and more involved than simply using the map call on the bounding box of the original relation members.