Kategorien:

Geodatenfunktionen

ST_PERIMETER

Gibt die Länge des Umfangs des Polygons/der Polygone in einem GEOGRAPHY- oder GEOMETRY-Objekt zurück.

Syntax

ST_PERIMETER( <geography_or_geometry_expression> )
Copy

Argumente

geography_or_geometry_expression

Das Argument muss vom Datentyp GEOGRAPHY oder GEOMETRY sein.

Rückgabewerte

Gibt einen REAL-Wert zurück, der die Länge repräsentiert:

  • Bei GEOGRAPHY-Objekten wird die Länge in Metern angegeben.

  • Bei GEOMETRY-Objekten wird die Länge in der Maßeinheit berechnet, die zur Definition der Eingabekoordinaten verwendet wurde.

Nutzungshinweise

  • Wenn geography_or_geometry_expression weder ein Polygon noch ein MultiPolygon oder eine GeometryCollection ist, die Polygone enthält, gibt ST_PERIMETER den Wert 0 zurück.

  • Wenn geography_or_geometry_expression eine GeometryCollection ist, gibt ST_PERIMETER die Summe der Umfänge aller Polygone in der Collection zurück.

  • Verwenden Sie diese Funktion (anstelle von ST_LENGTH), um den Umfang eines Polygons abzurufen.

Beispiele

GEOGRAPHY-Beispiele

In diesem Beispiel wird die Länge des Umfangs eines Polygons berechnet, das an jeder Kante einen Bogengrad beträgt und eine Kante am Äquator aufweist:

SELECT ST_PERIMETER(TO_GEOGRAPHY('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'));
+------------------------------------------------------------------+
| ST_PERIMETER(TO_GEOGRAPHY('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) |
|------------------------------------------------------------------|
|                                                 444763.468727621 |
+------------------------------------------------------------------+
Copy

GEOMETRY-Beispiele

Im folgenden Beispiel wird die Verwendung der ST_PERIMETER-Funktion gezeigt.

SELECT ST_PERIMETER(g), ST_ASWKT(g)
FROM (SELECT TO_GEOMETRY(column1) AS g
  FROM VALUES ('POINT(1 1)'),
              ('LINESTRING(0 0, 1 1)'),
              ('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'));
Copy
+-----------------+--------------------------------+
| ST_PERIMETER(G) | ST_ASWKT(G)                    |
|-----------------+--------------------------------|
|               0 | POINT(1 1)                     |
|               0 | LINESTRING(0 0,1 1)            |
|               4 | POLYGON((0 0,0 1,1 1,1 0,0 0)) |
+-----------------+--------------------------------+
Copy