Opened 2 years ago

Last modified 2 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.

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top