Name

ST_3DUnion — Effectuer l'union 3D.

Synopsis

geometry ST_3DUnion(geometry geom1, geometry geom2);

geometry ST_3DUnion(geometry set g1field);

Description

Disponibilité : 2.2.0

Disponibilité : 3.3.0 la variante agrégée a été ajoutée

Cette méthode nécessite le backend SFCGAL.

Cette méthode implémente la spécification SQL/MM.

SQL-MM IEC 13249-3: 5.1

Cette fonction prend en charge la 3D et ne supprime pas l'indice z.

Cette fonction prend en charge les surfaces Polyhedral.

Cette fonction prend en charge les triangles et les réseaux irréguliers triangulés (TIN).

Variante agrégée: renvoie une géométrie qui est l'union 3D d'un ensemble de géométries. La fonction ST_3DUnion() est une fonction "agrégée" dans la terminologie de PostgreSQL. Cela signifie qu'elle opère sur des lignes de données, de la même manière que les fonctions SUM() et AVG() et, comme la plupart des agrégats, elle ignore les géométries NULL.

Exemples

Les images 3D ont été générées à l'aide de PostGIS ST_AsX3D et rendues en HTML à l'aide de 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;
                

Géométries 3D originales superposées. geom2 est celle qui est transparente.

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;

Union de geom1 et geom2

Voir aussi

ST_Extrude, ST_AsX3D, ST_3DIntersection ST_3DDifference