CG_體積 — 計算 3D 實體的體積。如果應用於表面(即使是封閉的)幾何形狀,將返回 0。
float CG_體積(
geometry geom1)
;
可用性:3.5.0
這個方法需要 SFCGAL 後端。
此函數支援 3D,並且不會捨棄 z 軸索引。
此函數支援多面體表面。
此函數支援三角形和三角不規則網路表面 (TIN)。
此方法實作 SQL/MM 規範。SQL-MM IEC 13249-3: 9.1 (與 CG_3DVolume 相同)
當使用 WKT 建立封閉表面時,它們被視為面積而非實體。要將它們變成實體,您需要使用 CG_MakeSolid。面積幾何形狀沒有體積。這裡有一個範例來演示。
SELECT CG_Volume(geom) As cube_surface_vol, CG_Volume(CG_MakeSolid(geom)) As solid_surface_vol FROM (SELECT 'POLYHEDRALSURFACE( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'::geometry) As f(geom); cube_surface_vol | solid_surface_vol ------------------+------------------- 0 | 1