名称

CG_3DArea — 计算 3D 表面几何图形的面积。对于实体将返回 0。

概要

floatCG_3DArea(geometry geom1);

描述

可用性: 3.5.0

此方法需要 SFCGAL 后端。

此方法实现了 SQL/MM 规范。SQL-MM IEC 13249-3: 8.1, 10.5

此函数支持 3D,并且不会丢弃 z 索引。

此函数支持多面体表面。

此函数支持三角形和三角不规则网络表面(TIN)。

示例

注意:默认情况下,从 WKT 构建的多面体表面是表面几何图形,而不是实体。因此它具有表面积。一旦转换为实体,就没有面积。

SELECT CG_3DArea(geom) As cube_surface_area,
            CG_3DArea(CG_MakeSolid(geom)) As solid_surface_area
            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_area | solid_surface_area
            -------------------+--------------------
            6 |                  0