名称

ST_3DDifference — 执行 3D 差分

语法

geometry ST_3DDifference(geometry geom1, geometry geom2);

描述

返回不属于 geom2 的 geom1 部分。

可用性:2.2.0

此方法需要 SFCGAL 后端。

此方法实现了 SQL/MM 规范。

SQL-MM IEC 13249-3: 5.1

此函数支持 3d,并且不会删除 z 索引。

此函数支持多面体表面。

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

示例

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

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;
                

叠加的原始 3D 几何。geom2 是将要移除的部分。

SELECT ST_3DDifference(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;

移除 geom2 后剩余的部分

另请参阅

ST_ExtrudeST_AsX3DST_3DIntersection ST_3DUnion