#5376 closed defect (wontfix)

ST_Intersection returns EMPTY when mixing 2D and 3D geometries

Reported by: ezimanyi Owned by: pramsey
Priority: medium Milestone: PostGIS 3.3.3
Component: postgis Version: 3.3.x
Keywords: Cc:

Description

select st_astext(st_intersection(geometry 'Linestring z(3 1 1,3 1 3)',
  geometry 'POLYGON((2 0,2 2,4 2,4 0,2 0))'));
"LINESTRING EMPTY"
select postgis_full_version();
"POSTGIS=""3.3.2 3.3.2"" [EXTENSION] PGSQL=""150"" GEOS=""3.11.1-CAPI-1.17.1"" PROJ=""7.2.1"" LIBXML=""2.9.9"" LIBJSON=""0.12"" LIBPROTOBUF=""1.2.1"" WAGYU=""0.5.0 (Internal)"""

This was executed on the last version available for Windows

Change History (2)

comment:1 by pramsey, 14 months ago

It's not the mixed dimensions, it's the fact that your linestring has zero length. Now it's arguable whether or not the answer should be 'POINT(3 1)' but that's a question for GEOS.

select st_astext(st_intersection(
   'LINESTRING(3 1, 3 1)',
   'POLYGON((2 0, 2 2, 4 2, 4 0, 2 0))'));

 LINESTRING EMPTY

Note if I give the linestring even a little length, the dimensionality is nicely preserved in the output (high five!).

select st_astext(st_intersection('Linestring(3 1 1,3 1.1 3)','POLYGON((2 0,2 2,4 2,4 0,2 0))'));

 LINESTRING Z (3 1 1,3 1.1 3)
Last edited 14 months ago by pramsey (previous) (diff)

comment:2 by pramsey, 14 months ago

Resolution: wontfix
Status: newclosed

This won't get fixed here, I've punted it upstream. https://github.com/libgeos/geos/issues/884

Note: See TracTickets for help on using tickets.