Name

ST_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 ST_Volume(geometry geom1);

Description

Disponibilité : 2.2.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 à ST_3DVolume)

Exemple

Lorsque des surfaces fermées sont créées avec WKT, elles sont traitées comme des surfaces aréolaires plutôt que comme des surfaces solides. Pour les rendre solides, vous devez utiliser ST_MakeSolid. Les géométries aréolaires n'ont pas de volume. Voici un exemple pour le démontrer.

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
              

Voir aussi

ST_3DArea, ST_MakeSolid, ST_IsSolid