Opened 3 years ago
Last modified 3 years ago
#33787 closed Bug
GeosGeometry doesn't support empty 3d points — at Initial Version
Reported by: | Nicolas Noé | Owned by: | nobody |
---|---|---|---|
Component: | GIS | Version: | 4.0 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I need to create an empty 3d point using GeosGeometry, but it appears the z dimension gets lost in the process:
In [1]: from django.contrib.gis.geos import GEOSGeometry In [2]: g = GEOSGeometry('POINT Z EMPTY', srid=4326) In [3]: g.ewkt Out[3]: 'SRID=4326;POINT EMPTY' In [4]: g.hasz Out[4]: False
I'd expect g.ewkt to be 'SRID=4326;POINT EMPTY' and g.hasz to be True. As a consequence, I can't assign it to a 3d model field.
I see the correct behavior if I use a non empty 3d point:
In [13]: g_non_empty = GEOSGeometry('POINT Z (1 1 1)', srid=4326) In [14]: g_non_empty.hasz Out[14]: True In [15]: g_non_empty.ewkt Out[15]: 'SRID=4326;POINT Z (1 1 1)'
I also tried creating the same feature using EWKB (0x0101000080000000000000F87F000000000000F87F000000000000F87F is a 3D empty point), but the third dimension is also lost here, just like in the first example.