ST_Volume — Beräknar volymen för en 3D-solid. Om den tillämpas på ytgeometrier (även slutna) kommer den att returnera 0.
float ST_Volume(
geometry geom1)
;
Tillgänglighet: 2.2.0
Denna metod behöver SFCGAL-backend.
Denna funktion stöder 3d och kommer inte att tappa z-index.
Denna funktion stöder polyedriska ytor.
Denna funktion stöder trianglar och triangulerade oregelbundna nätverksytor (TIN).
Denna metod implementerar SQL/MM-specifikationen. SQL-MM IEC 13249-3: 9.1 (samma som ST_3DVolume)
När slutna ytor skapas med WKT behandlas de som areal i stället för solid. För att göra dem solida måste du använda ST_MakeSolid. Areala geometrier har ingen volym. Här är ett exempel för att demonstrera.
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