- 类别:
ST_LENGTH¶
返回 GEOGRAPHY 对象中的 LineString 的测地线长度,或者 GEOMETRY 对象中的 LineString 的欧几里得长度。
语法¶
ST_LENGTH( <geography_or_geometry_expression> )
实参¶
geography_or_geometry_expression
实参的类型必须为 GEOGRAPHY 或 GEOMETRY。
返回¶
返回一个 REAL 值,该值表示长度:
对于 GEOGRAPHY 输入值,长度以米为单位。
对于 GEOMETRY 输入值,长度的计算单位与定义输入坐标所用单位相同。
使用说明¶
如果
geography_or_geometry_expression
不是包含线串的 LineString、MultiLineString 或 GeometryCollection,则 ST_LENGTH 返回 0。如果
geography_or_geometry_expression
是 GeometryCollection,则 ST_LENGTH 返回集合中线串长度的总和。如果需要多边形的周长,请改用 ST_PERIMETER 函数。
示例¶
GEOGRAPHY 示例¶
此示例显示了赤道处一度弧的长度(以米为单位):
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 | +---------------------------------------------------------+
GEOMETRY 示例¶
下面的示例演示如何使用 ST_LENGTH 函数。
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))'));+--------------+--------------------------------+ | 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)) | +--------------+--------------------------------+