名称

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