ST_Perimeter - Amazon Redshift

ST_Perimeter

对于输入平面几何体,ST_Perimeter 返回 2D 投影的笛卡尔周长(边界长度)。周长单位与用于表示输入几何体坐标的单位相同。对于点、多点和线性几何体,此函数返回零 (0)。当输入为几何体集合时,此函数返回集合中的几何体周长之和。

对于输入平面地理,ST_Piameter 返回由 SRID 确定的在椭球体上计算的输入平面地理的 2D 投影的测地线周长(边界长度)。周长以米为单位。对于点、多点和线性地理,此函数返回零 (0)。当输入为几何体集合时,此函数返回集合中的地理周长之和。

语法

ST_Perimeter(geo)

参数

geo

一个 GEOMETRYGEOGRAPHY 数据类型的值,或一个计算结果为 GEOMETRYGEOGRAPHY 类型的表达式。

返回类型

DOUBLE PRECISION

如果 geo 为 null,则返回 null。

如果找不到 SRID 值,则返回一个错误。

示例

以下 SQL 返回多边形的笛卡尔周长。

SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,0 10,0 0)),((10 0,20 0,20 10,10 0)))'));
st_perimeter -------------------------------- 68.2842712474619

以下 SQL 返回多边形的笛卡尔周长。

SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,0 10,0 0)),((10 0,20 0,20 10,10 0)))'));
st_perimeter -------------------------------- 68.2842712474619

以下 SQL 返回地理中的多边形周长。

SELECT ST_Perimeter(ST_GeogFromText('SRID=4326;POLYGON((0 0,1 0,0 1,0 0))'));
st_perimeter ------------------ 378790.428393693

以下 SQL 返回地理中线串的周长。

SELECT ST_Perimeter(ST_GeogFromText('SRID=4326;LINESTRING(5 0,10 0)'));
st_perimeter -------------- 0