名稱

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 的聯集