ST_Length — 傳回線性幾何的 2D 長度。
float ST_Length(
geometry a_2dlinestring)
;
float ST_Length(
geography geog, boolean use_spheroid = true)
;
對於幾何類型:如果幾何是 LineString、MultiLineString、ST_Curve、ST_MultiCurve,則傳回幾何的 2D 笛卡爾長度。對於面積幾何,則傳回 0;請改用 ST_Perimeter。長度單位由幾何的空間參考系統決定。
對於地理類型:使用逆大地測量計算執行。長度單位為公尺。如果 PostGIS 使用 PROJ 4.8.0 或更高版本編譯,則橢球體由 SRID 指定,否則專屬於 WGS84。如果 use_spheroid = false
,則計算基於球體而不是橢球體。
目前對於幾何,這是 ST_Length2D 的別名,但此項可能會更改以支援更高的維度。
![]() |
|
變更:2.0.0 破壞性變更 -- 在先前版本中,將此應用於 geography 類型的 MULTI/POLYGON 會提供 POLYGON/MULTIPOLYGON 的周長。在 2.0.0 中,此項已變更為傳回 0 以符合幾何行為。如果您想要多邊形的周長,請使用 ST_Perimeter。 |
![]() |
|
對於地理類型,計算預設為使用橢球模型。要使用更快但較不精確的球面計算,請使用 ST_Length(gg,false); |
此方法實作了 OGC Simple Features Implementation Specification for SQL 1.1. s2.1.5.1
此方法實作了 SQL/MM 規範。SQL-MM 3: 7.1.2, 9.3.4
可用性:1.5.0 地理支援在 1.5 中引入。
傳回線字串的長度,單位為英呎。請注意,這是以英呎為單位,因為 EPSG:2249 是麻薩諸塞州平面英呎
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
傳回 WGS 84 地理線的長度
-- 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