Name

ST_ConvexHull — Berechnet die konvexe Hülle einer Geometrie.

Synopsis

geometry ST_ConvexHull(geometry geomA);

Beschreibung

Berechnet die konvexe Hülle einer Geometrie. Die konvexe Hülle stellt die kleinste konvexe Geometrie dar, welche die gesamte Geometrie einschließt.

Man kann sich die konvexe Hülle als die Geometrie vorstellen, die man erhält, wenn man ein Gummiband um eine Reihe von Geometrien wickelt. Dies unterscheidet sich von einer konkaven Hülle, die dem "Einschweißen" der Geometrien entspricht. Eine konvexe Hülle wird häufig verwendet, um ein betroffenes Gebiet auf der Grundlage einer Reihe von Punktbeobachtungen zu bestimmen.

Im allgemeinen Fall ist die konvexe Hülle ein Polygon. Die konvexe Hülle von zwei oder mehr kollinearen Punkten ist ein Zweipunkt-Linienzug (LineString). Die konvexe Hülle von einem oder mehreren identischen Punkten ist ein Punkt.

Dies ist keine Aggregatfunktion. Um die konvexe Hülle einer Menge von Geometrien zu berechnen, verwenden Sie ST_Collect, um sie zu einer Geometriesammlung zu aggregieren (z. B. ST_ConvexHull(ST_Collect(geom)).

Wird durch das GEOS Modul ausgeführt

Diese Methode implementiert die OGC Simple Features Implementation Specification for SQL 1.1. s2.1.1.3

Diese Methode setzt die SQL/MM-Spezifikation um. SQL-MM IEC 13249-3: 5.1.16

Diese Funktion unterstützt 3d und lässt den Z-Index nicht fallen.

Beispiele

Konvexe Hülle eines MultiLineString und eines 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))
    

Verwendung mit ST_Collect zur Berechnung der konvexen Hüllen einer Geometrie.

--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;