类别:

地理空间函数

ST_AREA

返回 GEOGRAPHYGEOMETRY 对象中多边形的面积。

语法

ST_AREA( <geography_or_geometry_expression> )
Copy

实参

geography_or_geometry_expression

实参的类型必须为 GEOGRAPHY 或 GEOMETRY。

返回

返回一个 REAL 值,该值表示面积:

  • 对于 GEOGRAPHY 输入值,面积以平方米为单位。

  • 对于 GEOMETRY 输入值,面积的计算单位与定义输入坐标的单位相同。

使用说明

  • 如果 geography_expression 不是多边形、MultiPolygon 或包含多边形的 GeometryCollection,则 ST_AREA 返回 0。

  • 如果 geography_expression 是一个 GeometryCollection,则 ST_AREA 返回集合中多边形的面积之和。

示例

GEOGRAPHY 示例

这使用 ST_AREA 函数和 GEOGRAPHY 对象来计算地球表面的面积(每边 1 度,且区域底部在赤道上):

SELECT ST_AREA(TO_GEOGRAPHY('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) AS area;
+------------------+
|             AREA |
|------------------|
| 12364036567.0764 |
+------------------+
Copy

GEOMETRY 示例

下面的示例调用 ST_AREA 函数,并使用了表示点、LineString和多边形的 GEOMETRY 对象。

SELECT ST_AREA(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))'));
Copy
+------------+--------------------------------+
| ST_AREA(G) | ST_ASWKT(G)                    |
|------------+--------------------------------|
|          0 | POINT(1 1)                     |
|          0 | LINESTRING(0 0,1 1)            |
|          1 | POLYGON((0 0,0 1,1 1,1 0,0 0)) |
+------------+--------------------------------+
Copy
语言: 中文