Name

ST_ConvexHull — Calcule l'enveloppe convexe d'une géométrie.

Synopsis

geometry ST_ConvexHull(geometry geomA);

Description

Calcule l'enveloppe convexe d'une géométrie. L'enveloppe convexe est la plus petite géométrie convexe qui englobe toutes les géométries de l'entrée.

On peut considérer l'enveloppe convexe comme la géométrie obtenue en enroulant un élastique autour d'un ensemble de géométries. Ceci est différent d'une concave hull qui est analogue à un "rétrécissement" des géométries. Une enveloppe convexe est souvent utilisée pour déterminer une zone affectée sur la base d'un ensemble d'observations ponctuelles.

Dans le cas général, l'enveloppe convexe est un polygone. L'enveloppe convexe de deux ou plusieurs points colinéaires est une LineString à deux points. L'enveloppe convexe d'un ou plusieurs points identiques est un Point.

Il ne s'agit pas d'une fonction d'agrégation. Pour calculer l'enveloppe convexe d'un ensemble de géométries, utilisez ST_Collect pour les agréger dans une collection de géométries (par exemple ST_ConvexHull(ST_Collect(geom)).

Effectué par le module GEOS

Cette méthode implémente la spécification OGC Simple Features Implementation Specification for SQL 1.1.

s2.1.1.3

Cette méthode implémente la spécification SQL/MM.

SQL-MM IEC 13249-3: 5.1.16

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

Exemples

Enveloppe convexe d'une MultiLinestring et d'un MultiPoint

SELECT ST_AsText(ST_ConvexHull(
    ST_Collect(
        ST_GeomFromText('MULTILINESTRING((100 190,10 8),(150 10, 20 30))'),
            ST_GeomFromText('MULTIPOINT(50 5, 150 30, 50 10, 10 10)')
            )) );
---st_astext--
POLYGON((50 5,10 8,10 10,100 190,150 30,150 10,50 5))
    

Utilisation avec ST_Collect pour calculer les enveloppes convexes des ensembles géométriques.

--Get estimate of infected area based on point observations
SELECT d.disease_type,
    ST_ConvexHull(ST_Collect(d.geom)) As geom
    FROM disease_obs As d
    GROUP BY d.disease_type;

Voir aussi

ST_Collect, ST_ConcaveHull, ST_MinimumBoundingCircle