Kategorien:

Geodatenfunktionen

ST_LENGTH

Gibt die geodätische Länge der LineString-Objekten in einem GEOGRAPHY-Objekt oder die euklidische Länge der LineString-Objekte in einem GEOMETRY-Objekt zurück.

Syntax

ST_LENGTH( <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 Eingabewerten vom Typ GEOGRAPHY wird die Länge in Meter angegeben.

  • Bei Eingabewerten vom Typ GEOMETRY wird die Länge mit den Einheiten berechnet, die zur Definition der Eingabekoordinaten verwendet wurden.

Nutzungshinweise

  • Wenn geography_or_geometry_expression weder ein LineString noch ein MultiLineString oder eine GeometryCollection ist, die LineString-Werte enthält, gibt ST_LENGTH den Wert 0 zurück.

  • Wenn geography_or_geometry_expression eine GeometryCollection ist, gibt ST_LENGTH die Summe der Längen der Polygonzüge (LineStrings) in der Collection zurück.

  • Wenn Sie die Umfangslänge eines Polygons ermitteln möchten, verwenden Sie stattdessen die Funktion ST_PERIMETER.

Beispiele

GEOGRAPHY-Beispiele

Das folgende Beispiel zeigt die Länge eines Bogengrades am Äquator in Meter an:

SELECT ST_LENGTH(TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0)'));
+---------------------------------------------------------+
| ST_LENGTH(TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0)')) |
|---------------------------------------------------------|
|                                        111195.101177484 |
+---------------------------------------------------------+
Copy

GEOMETRY-Beispiele

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

SELECT ST_LENGTH(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_LENGTH(G) | ST_ASWKT(G)                    |
|--------------+--------------------------------|
|  0           | POINT(1 1)                     |
|  1.414213562 | LINESTRING(0 0,1 1)            |
|  0           | POLYGON((0 0,0 1,1 1,1 0,0 0)) |
+--------------+--------------------------------+
Copy