Accidental "glueing" of points on import #11
Replies: 3 comments 5 replies
-
This can also happen with regular editing when someone maps outside downloaded area. Possible solutions: (1) make invalid to edit in area without downloading it (one more trap for importers and people doing reverts) (2) edit should include info which points are intended to be glued to other nodes, treat mismatch with real data as edit conflict (may be too resource intensive)
Me :) |
Beta Was this translation helpful? Give feedback.
-
To me, moving from topological to geographical connections will introduce more issues than accidental gluing on imports. Current topological framework ensure of connections by design, with no possible doubt. How can we enforce a common behavior on all editors/consumers? Practical example: Mappers may cause harm out of their own will. Implementing such geographical rules would require to provide some certainty and consistency between different editors. |
Beta Was this translation helpful? Give feedback.
-
Question: could be possible to still explicitly create synthetic IDs for the new approach? TL;DR of reasoning: simpler cases, like low populated areas, or ways not far for each other (something current tools might already auto detect on imports) are not the problem, but as soon as we get into medium to heavy dense regions, or average 3D building, it will be a nightmare to implement this thing at client side. Today's approach, while hard for import, after is done, we're very sure that IDs are connected to each other, but I suspect that if eventually appears people trying to import something like Indoor Mapping Data Format "IMDF" (like I comented on https://community.openstreetmap.org/t/overturemaps-org-big-businesses-osmf-alternative/6760/127), without some sort of persistent ID not granted to be reused, it will be hard to keep track. Potential approach on synthetic IDs for nodes: while IMDF uses UUIDs which are granted to be unique, they would take too much space. So we could get something far shorter (but requires some server to be sure not to repeat them). This would need some calculations up ahead about tradeoffs of typical places that would handle these ids, but the way alternatives to UUIDs could be hashes like the slug on YouTube URL algorithm. Depending on the client, the difference between the current use would be simple: instead of nodes being always fully numeric (base 10), some of them would become hex (base 16). So at XML or textual dumps, it would almost feel like the same, but when importing, tools could handle them differently. Again, in special cases for non trivial cases, it is better to make quality assurance at import than make it even harder at client side to detect what is connected to what. I do understand that loading something like in iD editor with some types of new nodes with non-integer IDs might take more memory, but it would be by far, less memory or CPU usage than recomputing from tags alone every time. |
Beta Was this translation helpful? Give feedback.
-
If we don't use nodes any more for the way geometry (chapter 4.1 in the study) a connection between ways (and POI nodes) will be done based on the location alone. An import could accidentally create connections where there shouldn't be any if it doesn't take existing locations into account.
Currently we sometimes have the opposite problem with imports creating too many nodes instead of reusing existing ones. So this doesn't look like a huge problem to me, but it is certainly something that has to be taken into account and we should document as one of the things to look out for and some best practice tips how to avoid it.
(This issue was originally raised by someone during the BoF at SotM 2022.)
Beta Was this translation helpful? Give feedback.
All reactions