Name

CG_Volume — Calcule le volume d'un solide 3D. S'il est appliqué à des géométries de surface (même fermées), il renvoie 0.

Synopsis

float CG_Volume(geometry geom1);

Description

Disponibilité : 3.5.0

Cette méthode nécessite le backend SFCGAL.

Cette fonction prend en charge la 3D et ne supprime pas l'indice z.

Cette fonction prend en charge les surfaces Polyhedral.

Cette fonction prend en charge les triangles et les réseaux irréguliers triangulés (TIN).

Cette méthode implémente la spécification SQL/MM. SQL-MM IEC 13249-3 : 9.1 (identique à CG_3DVolume)

Exemple

Lorsque des surfaces fermées sont créées avec WKT, elles sont traitées comme des surfaces aréolaires et non comme des surfaces solides. Pour les rendre solides, vous devez utiliser CG_MakeSolid. Les géométries aréolaires n'ont pas de volume. Voici un exemple de démonstration.

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