cityjson / specs

Specifications for CityJSON, a JSON-based encoding for 3D city models
https://cityjson.org
Creative Commons Zero v1.0 Universal
107 stars 25 forks source link

null in semantics values #128

Closed balazsdukai closed 1 year ago

balazsdukai commented 1 year ago

If a surface does not have semantics, there is null in the semantics.values array instead of its index. The current specs suggests that for more complex geometries (Solid, CompositeSolid), one should fill the shell-array with null for each surface, even the whole shell does not have semantics. Although, the example is a bit ambiguous, because the comment says a different thing than the example.

https://github.com/cityjson/specs/blob/fcd13ba921f81b666fab4960903f2f72758a75cf/specs/specs.bs#L979-L981

Previously, it was possible to declare the whole shell-array as null, if none of the surfaces has semantics. However, this was changed in https://github.com/cityjson/specs/commit/4f0a09b52d4025cc193e73c3dbc364103f277473?diff=unified#diff-279e2f6f8646211b27f70036bad53a9944da6634b50f77f18d5e05711f313154L919 The related explanation was removed much earlier, https://github.com/cityjson/specs/commit/a14406f88f3d7d13a0133c2b95cf92d2feafee51#diff-279e2f6f8646211b27f70036bad53a9944da6634b50f77f18d5e05711f313154L843-L848

But I couldn't find an explanation for these changes. Do you remember them @hugoledoux ?

hugoledoux commented 1 year ago
  1. The comment should be updated, nice catch.
  2. I do remember: it was not that easy to implement this, and then to support CityJSON people would have had to code this. Having 2 trees having the same "shape" is way easier (at the cost of more storage, this is true).