ST_Volume — 計算 3D 立體的體積。若應用於表面(即使是封閉的),將返回 0。
float ST_Volume(
geometry geom1)
;
可用版本:2.2.0
此方法需要 SFCGAL 後端。
此函數支援 3D,並且不會捨棄 z 索引。
此函數支援多面體表面。
此函數支援三角形和不規則三角網格表面 (TIN)。
此方法實作 SQL/MM 規範。SQL-MM IEC 13249-3: 9.1 (與 ST_3DVolume 相同)
當使用 WKT 建立封閉表面時,它們被視為面狀而非立體。要使其成為立體,您需要使用 ST_MakeSolid。面狀幾何沒有體積。以下範例示範說明。
SELECT ST_Volume(geom) As cube_surface_vol, ST_Volume(ST_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