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