- 类别:
ST_PERIMETER¶
返回 GEOGRAPHY 或 GEOMETRY 对象中多边形周长的长度。
语法¶
ST_PERIMETER( <geography_or_geometry_expression> )
实参¶
geography_or_geometry_expression
实参的类型必须为 GEOGRAPHY 或 GEOMETRY。
返回¶
返回一个 REAL 值,该值表示长度:
对于 GEOGRAPHY 对象,长度以米为单位。
对于 GEOMETRY 对象,长度的计算单位与定义坐标时使用的单位相同。
使用说明¶
如果
geography_or_geometry_expression
不是多边形、MultiPolygon 或包含多边形的 GeometryCollection,则 ST_PERIMETER 返回 0。如果
geography_or_geometry_expression
是一个 GeometryCollection,则 ST_PERIMETER 返回集合中多边形的周长之和。使用此函数(而不是 ST_LENGTH)获取多边形的周长。
示例¶
GEOGRAPHY 示例¶
计算多边形的周长,该多边形的每条边的弧度为 1 度,并且有一条边位于赤道上:
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 | +------------------------------------------------------------------+
GEOMETRY 示例¶
下面的示例演示如何使用 ST_PERIMETER 函数。
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))'));+-----------------+--------------------------------+ | 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)) | +-----------------+--------------------------------+