Kategorien:

Geodatenfunktionen

ST_MAKEPOLYGON , ST_POLYGON

Konstruiert ein GEOGRAPHY- oder ein GEOMETRY-Objekt, das ein Polygon ohne Löcher repräsentiert. Die Funktion verwendet den angegebenen LineString als äußere Schleife.

Diese Funktion korrigiert die Ausrichtung der Schleife, um das Erstellen von Polygonen zu verhindern, die sich über mehr als die Hälfte der Erdkugel erstrecken. Im Gegensatz dazu versucht ST_MAKEPOLYGONORIENTED nicht, die Ausrichtung der Schleife zu korrigieren.

Siehe auch:

TO_GEOGRAPHY , TO_GEOMETRY , ST_MAKEPOLYGONORIENTED

Syntax

ST_MAKEPOLYGON( <geography_or_geometry_expression> )
Copy

Argumente

geography_or_geometry_expression

Ein GEOGRAPHY- oder GEOMETRY-Objekt, das einen LineString darstellt, bei dem der letzte Punkt mit dem ersten identisch ist (d. h. eine Schleife).

Rückgabewerte

Die Funktion gibt einen Wert vom Typ GEOGRAPHY oder GEOMETRY zurück.

Nutzungshinweise

  • Die Linien des Polygons müssen eine Schleife bilden. Das heißt, der letzte Punkt in der Sequenz von Punkten, die das LineString-Objekt definieren, muss derselbe Punkt sein wie der erste Punkt der Sequenz.

  • ST_POLYGON ist ein Alias für ST_MAKEPOLYGON.

  • Bei GEOMETRY-Objekten hat das zurückgegebene GEOMETRY-Objekt dieselbe SRID wie das Eingabeobjekt.

Beispiele

GEOGRAPHY-Beispiele

Das folgende Beispiel zeigt eine einfache Verwendung der Funktion ST_MAKEPOLYGON. Die folgende Punktfolge definiert einen geodätischen rechteckigen Bereich mit einer Breite von 1 Grad und einer Länge von 2 Grad, wobei die untere linke Ecke des Polygons am Äquator (Breitengrad) und Greenwich (Längengrad) beginnt. Der letzte Punkt in der Sequenz ist der gleiche wie der erste Punkt, der die Schleife vervollständigt.

SELECT ST_MAKEPOLYGON(
   TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0, 1.0 2.0, 0.0 2.0, 0.0 0.0)')
   ) AS polygon1;
+--------------------------------+
| POLYGON1                       |
|--------------------------------|
| POLYGON((0 0,1 0,1 2,0 2,0 0)) |
+--------------------------------+
Copy

GEOMETRY-Beispiele

Das folgende Beispiel zeigt eine einfache Verwendung der Funktion ST_MAKEPOLYGON.

SELECT ST_MAKEPOLYGON(
  TO_GEOMETRY('LINESTRING(0.0 0.0, 1.0 0.0, 1.0 2.0, 0.0 2.0, 0.0 0.0)')
  ) AS polygon;
Copy
+--------------------------------+
| POLYGON                        |
|--------------------------------|
| POLYGON((0 0,1 0,1 2,0 2,0 0)) |
+--------------------------------+
Copy