名稱

CG_3DDifference — 執行 3D 差集運算

概要

geometry CG_3DDifference(geometry geom1, geometry geom2);

描述

返回 geom1 中不屬於 geom2 的部分。

可用版本:3.5.0

此方法需要 SFCGAL 後端。

此方法實作 SQL/MM 規範。SQL-MM IEC 13249-3: 5.1

此函數支援 3D,且不會捨棄 Z 軸座標。

此函數支援多面體表面。

此函數支援三角形和三角不規則網路表面 (TIN)。

範例

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_3DDifference(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;

移除 geom2 後剩下的部分