You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, GOLs don't store IDs for nodes unless they are tagged or are part of relations (A node is not considered a "feature" if its only purpose is defining the geometry of a way). These nodes are referred to as anonymous nodes.
Way.nodes() returns all Node objects of a way, but only the feature nodes (e.g. a crosswalk or speed bump along a road) will have an ID. Anonymous nodes have an ID of 0 (they merely carry their coordinates)
When query results are exported as OSM-XML, the GOL Tool assigns a synthetic ID to each anonymous node. This ensures referential integrity among ways and nodes within the XML file (the nodes of two connected ways will have the same ID). Within the same XML file: a) all anonymous nodes with the same coordinates will have the same ID, and b) synthetic IDs will not clash with the "real" ID of a feature node within the same file. However, referential integrity is not guaranteed across multiple separate XML exports.
We should consider an option in the build command to store IDs for anonymous nodes. This would make it possible to obtain completely lossless OSM data, which would be needed for editing tools and may be required by data consumers that expect all node IDs to match the "official" OSM database.
As storing the IDs of anonymous nodes would increase the size of a GOL (by about 20%), this option should be disabled by default.
Having the IDs of all nodes may be a prerequisite for incremental updates (though they would not necessarily need to be stored in the GOL for this use case).
This option would make node iteration slightly more complex, and decrease iteration speed if option is enabled (if disabled, performance impact is minimal, though a flag check would still be necessary).
The text was updated successfully, but these errors were encountered:
Currently, GOLs don't store IDs for nodes unless they are tagged or are part of relations (A node is not considered a "feature" if its only purpose is defining the geometry of a way). These nodes are referred to as anonymous nodes.
Way.nodes()
returns all Node objects of a way, but only the feature nodes (e.g. a crosswalk or speed bump along a road) will have an ID. Anonymous nodes have an ID of 0 (they merely carry their coordinates)When query results are exported as OSM-XML, the GOL Tool assigns a synthetic ID to each anonymous node. This ensures referential integrity among ways and nodes within the XML file (the nodes of two connected ways will have the same ID). Within the same XML file: a) all anonymous nodes with the same coordinates will have the same ID, and b) synthetic IDs will not clash with the "real" ID of a feature node within the same file. However, referential integrity is not guaranteed across multiple separate XML exports.
We should consider an option in the
build
command to store IDs for anonymous nodes. This would make it possible to obtain completely lossless OSM data, which would be needed for editing tools and may be required by data consumers that expect all node IDs to match the "official" OSM database.As storing the IDs of anonymous nodes would increase the size of a GOL (by about 20%), this option should be disabled by default.
Having the IDs of all nodes may be a prerequisite for incremental updates (though they would not necessarily need to be stored in the GOL for this use case).
This option would make node iteration slightly more complex, and decrease iteration speed if option is enabled (if disabled, performance impact is minimal, though a flag check would still be necessary).
The text was updated successfully, but these errors were encountered: