Name

ST_Volume — 计算 3D 实体的体积。 如果应用于表面(甚至闭合)几何图形将返回 0。

Synopsis

float ST_Volume(geometry geom1);

描述

[Warning]

ST_Volume 自 3.5.0 版本起已弃用。请改用 CG_Volume

可用性:2.2.0

该方法需要SFCGAL后端。

该函数支持 3d 并且不会丢失 z-index。

该函数支持多面体曲面。

此函数支持三角形和不规则三角网面 (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