Open mwtoews opened 1 year ago
Unfortunately, this one is beyond my C++ abilities to fix. Any help/pointers would be appreciated!
The issue is that collections don't actually store their own dimensions, they just check their sub-geometries on request:
https://github.com/libgeos/geos/blob/main/src/geom/GeometryCollection.cpp#L168
To store MULTIPOLYGON Z EMPTY
you would need to modify GeometryCollection
to store this directly.
And then the basic geometries go and check their coordinate sequence...
https://github.com/libgeos/geos/blob/main/src/geom/Polygon.cpp#L149
Doesn't feel like there's anything more elegant solution-wise than an isEmpty
member on Geometry, am I missing anything?
Investigating further into HasZ shows some inconsistencies between types. These are expected:
outputs
and similar expected behaviour with
M
/ZM
coordinate types.However, these are not expected:
outputs
and similar behaviour with
M
/ZM
coordinate types. The expected behaviour should mimic the non-multi empty geometries, similar to PostGIS: