30-11-2017 22:56 tarihinde Yuri Astrakhan yazdı: > > If you edit a road, a new one would be created and would point to its > invalidated ancestor. Recursively chasing previous ID pointers, you > would eventually have an object without an ancestor. ID of that object > would also be permanent ID of the successor objects. This will also > solve road split problems as multiple objects can point to the same > ancestor. > > > Erikn, if I understood you correctly, you are proposing the data > structure to generate and track IDs. I think there are several issues: > * determining feature ID requires O(N) - linear search through history. If you just want the latest version, one lookup. If you want ancestors and descendants, linear pointer chase. > * given an ID, if you want to examine what it points to, you have to > assemble the whole tree of descendants to determine all of the leafs, > and test if they still exist or were deleted. Which also means that > instead of a human-currated single relation for the multi-segment > road, and a single list of tags, you are now looking at a set of > objects, each with its own list of tags. ID-only lean tree may be stored at the server side. You will then only download the objects you actually want. > * Download must contain an entire OSM change history to work with the > IDs offline > See git's shallow cloning. As OSM IDs are linear counter rather than hashes, it is even easier to work: You can prune objects by ID thresholding.
Yours, faithfully Erkin Alp _______________________________________________ Tagging mailing list [email protected] https://lists.openstreetmap.org/listinfo/tagging
