Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
ST_ConvexHull
ST_ConvexHull gibt eine Geometrie zurück, die die konvexe Hülle der nicht leeren Punkte darstellt, die in der Eingabegeometrie enthalten sind.
Bei einer leeren Eingabe ist die resultierende Geometrie die gleiche wie die Eingabegeometrie. Bei allen nicht leeren Eingaben wird die Funktion auf der 2D-Projektion der Eingabegeometrie ausgeführt. Die Dimension der Ausgabegeometrie hängt jedoch von der Dimension der Eingabegeometrie ab. Genauer gesagt: Wenn es sich bei der Eingabegeometrie um eine nicht leere 3DM- oder 3D-Geometrie handelt, werden die m-Koordinaten gelöscht. Das heißt, dass die Dimension der zurückgegebenen Geometrie jeweils 2D oder 3DZ ist. Wenn es sich bei der Eingabe um eine nicht leere 2D- oder 3DZ-Geometrie handelt, hat die resultierende Geometrie dieselbe Dimension.
Syntax
ST_ConvexHull(geom)
Argumente
- geom
-
Ein Wert vom Datentyp
GEOMETRYoder ein Ausdruck, der zu einemGEOMETRY-Typ ausgewertet wird.
Rückgabetyp
GEOMETRY
Der SRID-Wert (Spatial Reference System Identifier) der zurückgegebenen Geometrie ist der SRID-Wert der Eingabegeometrie.
Wenn geom null ist, wird null zurückgegeben.
Die zurückgegebenen Werte lauten wie folgt.
| Anzahl der Punkte auf der konvexen Hülle | Geometrie-Subtyp |
|---|---|
0 |
Eine Kopie von geom wird zurückgegeben. |
1 |
Ein |
2 |
Ein |
3 oder höher |
Ein |
Beispiele
Das folgende SQL-Anweisung gibt die EWKT-Darstellung eines Linestrings zurück. In diesem Fall ist die zurückgegebene konvexe Hülle ein Polygon.
SELECT ST_AsEWKT(ST_ConvexHull(ST_GeomFromText('LINESTRING(0 0,1 0,0 1,1 1,0.5 0.5)'))) as output;
output
-------------
POLYGON((0 0,0 1,1 1,1 0,0 0))
Das folgende SQL gibt die EWKT-Darstellung eines Linestrings zurück. In diesem Fall ist die zurückgegebene konvexe Hülle ein Linestring.
SELECT ST_AsEWKT(ST_ConvexHull(ST_GeomFromText('LINESTRING(0 0,1 1,0.2 0.2,0.6 0.6,0.5 0.5)'))) as output;
output
-------------
LINESTRING(0 0,1 1)
Die folgende SQL-Anweisung gibt die EWKT-Darstellung eines Multipoints zurück. In diesem Fall ist die zurückgegebene konvexe Hülle ein Punkt.
SELECT ST_AsEWKT(ST_ConvexHull(ST_GeomFromText('MULTIPOINT(0 0,0 0,0 0)'))) as output;
output
-------------
POINT(0 0)