PostGIS

ST_3DUnion

Prev

7.21. SFCGAL Functions

Next

Name

ST_3DUnion — Perform 3D union.

Synopsis

geometry +`*`+ST_3DUnion*(`geometry `geom1, geometry geom2`)`;

geometry +`*`+ST_3DUnion*(`geometry set `g1field`)`;

Description

Availability: 2.2.0

Availability: 3.3.0 aggregate variant was added

check This method needs SFCGAL backend.

check This method implements the SQL/MM specification.

SQL-MM IEC 13249-3: 5.1

check This function supports 3d and will not drop the z-index.

check This function supports Polyhedral surfaces.

check This function supports Triangles and Triangulated Irregular Network Surfaces (TIN).

Aggregate variant: returns a geometry that is the 3D union of a rowset of geometries. The ST_3DUnion() function is an "aggregate" function in the terminology of PostgreSQL. That means that it operates on rows of data, in the same way the SUM() and AVG() functions do and like most aggregates, it also ignores NULL geometries.

Examples

3D images were generated using PostGIS ST_AsX3D and rendering in HTML using X3Dom HTML Javascript rendering library.

SELECT ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),
 50, 'quad_segs=2'),0,0,30) AS geom1,
        ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(80 80)'),
 50, 'quad_segs=1'),0,0,30) AS geom2;

st_3ddifference01

Original 3D geometries overlaid. geom2 is the one with transparency.

SELECT ST_3DUnion(geom1,geom2)
FROM ( SELECT ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),
 50, 'quad_segs=2'),0,0,30) AS geom1,
        ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(80 80)'),
 50, 'quad_segs=1'),0,0,30) AS geom2 ) As t;

st_3dunion01

Union of geom1 and geom2

See Also