Opened 16 years ago
Last modified 13 years ago
#103 closed task
Box3D always gets cast to 2D geometry — at Version 2
Reported by: | robe | Owned by: | robe |
---|---|---|---|
Priority: | medium | Milestone: | PostGIS 2.0.0 |
Component: | postgis | Version: | master |
Keywords: | boxes | Cc: |
Description (last modified by )
Actually not sure if this is solvable. But ST_SetSRID, ST_Force_3DZ all lose the Z coordinate value of a BOX3D.
Example:
SELECT ST_AsEWKT(ST_Force_3DZ(ST_Extent3D(foo.the_geom))) As b3extentpoly, ST_Extent3D(foo.the_geom) As b3extent FROM (SELECT ST_MakePoint(x,y,z) As the_geom
FROM generate_series(1,3) As x
CROSS JOIN generate_series(1,2) As y CROSS JOIN generate_series(0,2) As Z) As foo;
Yields: b3extentpoly b3extent POLYGON((1 1 0,1 2 0,3 2 0,3 1 0,1 1 0)) ;BOX3D(1 1 0,3 2 2)
I would expect the POLYGON value to have some 2 z coords in there.
Change History (2)
comment:1 by , 16 years ago
comment:2 by , 14 years ago
Description: | modified (diff) |
---|---|
Milestone: | → PostGIS 2.0.0 |
Priority: | low → medium |
Resolution: | wontfix |
Status: | closed → reopened |
Version: | → trunk |
Wait a sec, box3d is not a cube, is it ? It's defined by 2 points only, you can't define a cube like that.
I've hit this problem as well, while trying to get a 3d envelope of a 2.5d geom.
The issue here is that the cast from BOX3D to geometry only works in 2 dimensions. Unfortunately the behaviour of the 3rd dimension is not really defined when casting from a cube, so we could interpolate the Z coordinates but at the end of the day that doesn't really help you at all.
Since there is no well-defined behaviour, we may as well stick with the 2D conversion with the Z coordinate set to 0 and mark this as 'Won't fix'.
ATB,
Mark.