Name

ST_Length — Gibt den geometrischen Schwerpunkt einer Geometrie zurück.

Synopsis

float ST_Length(geometry a_2dlinestring);

float ST_Length(geography geog, boolean use_spheroid = true);

Beschreibung

Beim geometrischen Datentyp wird die kartesische 2D Länge der Geometrie zurückgegeben. Dabei muss es sich um einen LineString, einen MultiLineString, eine ST_Curve oder eine ST_MultiCurve handeln. Bei einer flächigen Geometrie wird 0 zurückgegeben. Für eine flächige Geometrie können Sie ST_Perimeter verwenden. Bei den geometrischen Datentypen sind die Einheiten für die Längenmessungen durch das Koordinatenreferenzsystem festgelegt.

Für Geografietypen: Die Berechnung erfolgt über die inverse geodätische Berechnung. Die Längeneinheiten sind in Meter. Wenn PostGIS mit PROJ Version 4.8.0 oder später kompiliert wurde, wird das Sphäroid durch den SRID angegeben, andernfalls ausschließlich WGS84. Wenn use_spheroid = false, dann basiert die Berechnung auf einer Kugel anstelle eines Sphäroids.

Zur Zeit ein Synonym für ST_Length2D; dies kann sich allerdings ändern, wenn höhere Dimensionen unterstützt werden.

[Warning]

Änderung: 2.0.0 Wesentliche Änderung -- In früheren Versionen ergab die Anwendung auf ein MULTI/POLYGON vom geographischen Datentyp den Umfang des POLYGON/MULTIPOLYGON. In 2.0.0 wurde dies geändert und es wird jetzt 0 zurückgegeben, damit es mit der Verhaltensweise beim geometrischen Datentyp übereinstimmt. Verwenden Sie bitte ST_Perimeter, wenn Sie den Umfang eines Polygons wissen wollen

[Note]

Beim geographischer Datentyp werden die Messungen standardmäßig am Referenzellipsoid durchgeführt. Für die schnellere, aber ungenauere Berechnung auf einer Kugel können Sie ST_Length(gg,false) verwenden;

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

Diese Methode setzt die SQL/MM-Spezifikation um. SQL-MM 3: 7.1.2, 9.3.4

Verfügbarkeit: 1.5.0 Unterstützung von geograpischen Koordinaten.

Beispiele mit dem geometrischen Datentyp

Gibt die Länge eines Linienstücks zurück. Beachten Sie, dass die Einheit Fuß ist, da EPSG:2249 "Massachusetts State Plane Feet" ist

SELECT ST_Length(ST_GeomFromText('LINESTRING(743238 2967416,743238 2967450,743265 2967450,
743265.625 2967416,743238 2967416)',2249));

st_length
---------
 122.630744000095


--Transforming WGS 84 LineString to Massachusetts state plane meters
SELECT ST_Length(
        ST_Transform(
                ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45, -72.1240 42.45666, -72.123 42.1546)'),
                26986
        )
);

st_length
---------
34309.4563576191
                        

Beispiele für den geographischen Datentyp 

Gibt die Länge einer Linie zurück, die in geographischen WGS 84 Koordinaten vorliegt.

-- the default calculation uses a spheroid
SELECT ST_Length(the_geog) As length_spheroid,  ST_Length(the_geog,false) As length_sphere
FROM (SELECT ST_GeographyFromText(
'SRID=4326;LINESTRING(-72.1260 42.45, -72.1240 42.45666, -72.123 42.1546)') As the_geog)
 As foo;

 length_spheroid  |  length_sphere
------------------+------------------
 34310.5703627288 | 34346.2060960742