名称

CG_3DUnion — 使用 postgis_sfcgal 执行 3D 并集操作。

概要

geometry CG_3DUnion(geometry geom1, geometry geom2);

geometry CG_3DUnion(geometry set g1field);

描述

可用性:3.5.0

此方法需要 SFCGAL 后端。

此方法实现了 SQL/MM 规范。SQL-MM IEC 13249-3: 5.1

此函数支持 3D 并将保留 z 索引。

此函数支持多面体表面。

此函数支持三角形和三角化不规则网络表面 (TIN)。

聚合变体: 返回一个几何体,它是几何体行集的 3D 并集。CG_3DUnion() 函数在 PostgreSQL 术语中是一个“聚合”函数。这意味着它像 SUM() 和 AVG() 函数一样对数据行进行操作,并且像大多数聚合函数一样,它也会忽略 NULL 几何体。

示例

3D 图像是使用 PostGIS ST_AsX3D 生成的,并使用 X3Dom HTML Javascript 渲染库在 HTML 中渲染的。

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

原始 3D 几何体叠加。geom2 是具有透明度的那个。

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

geom1 和 geom2 的并集