Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_AREA

📄字数 1.3K
👁️阅读量 加载中...

功能描述

返回多边形几何体的面积。

语法格式

sql
DOUBLE ST_AREA(GEOMETRY geom);
DOUBLE ST_AREA(GEOGRAPHY geog, boolean use_spheroid = true);

参数说明

  • geom:第一个目标 GEOMETRY 对象。
  • geog:第二个目标 GEOMETRY 对象。
  • use_spheroid:距离测量是否使用椭球体,可选。
    • TRUE:使用椭球体。
    • FALSE:在球面上进行测量,计算更快。

函数返回类型

DOUBLE 类型

使用说明

  1. 对于几何类型,计算 2D 笛卡尔(平面)面积,单位由 SRID 指定。
  2. 对于地理类型,默认面积是在球体上确定的,单位为平方米。
  3. 该函数支持多面体曲面(POLYHEDRALSURFACE)。
  4. 对于多面体曲面,仅支持 2D 多面体曲面(不支持 2.5D)。 对于 2.5D,可能会给出非零答案,但仅限于完全位于 XY 平面中的面。

示例

返回马萨诸塞州一块土地的面积(以平方英尺为单位),然后乘以换算得到平方米。 请注意,这是以平方英尺为单位,因为 EPSG:2249 是马萨诸塞州平面英尺

sql
SQL> select ST_AREA(geom) sqft,
         ST_AREA(geom) * 0.3048 * 0.3048 sqm
     from (
            select 'SRID=2249;POLYGON((743238 2967416,743238 2967450,
                     743265 2967450,743265.625 2967416,743238 2967416))'::GEOMETRY geom
          ) subquery;

+--------------+-------------+
|     SQFT     |     SQM     |
+--------------+-------------+
| 9.286250e+02 | 86.27208552 |
+--------------+-------------+

(1 row)

返回面积平方英尺并转换为马萨诸塞州平面米 (EPSG:26986) 以获得平方米。 请注意,单位为平方英尺,因为 2249 是马萨诸塞州平面英尺,变换面积的单位是平方米,因为 EPSG:26986 是马萨诸塞州平面米。

sql
SQL> select ST_AREA(geom) sqft,
         ST_AREA(ST_TRANSFORM(geom, 26986)) As sqm
     from (
              select
                  'SRID=2249;POLYGON((743238 2967416,743238 2967450,
                  743265 2967450,743265.625 2967416,743238 2967416))' :: GEOMETRY geom
          ) subquery;

+--------------+--------------+
|     SQFT     |     SQM      |
+--------------+--------------+
| 9.286250e+02 | 8.627243e+01 |
+--------------+--------------+

(1 row)

使用地理数据类型返回面积平方英尺和平方米。

sql
SQL> select ST_AREA(geog) / 0.3048 * 0.3048 sqft_spheroid,
         ST_AREA(geog, false) / 0.3048 * 0.3048 sqft_sphere,
         ST_AREA(geog) sqm_spheroid
     from (
              select ST_TRANSFORM(
                         'SRID=2249;POLYGON((743238 2967416,743238 2967450,743265 2967450,743265.625 2967416,743238 2967416))'::GEOMETRY,
                         4326
                  ) :: GEOGRAPHY geog
          ) as subquery;

+------------------------+-------------------------+--------------+
|     SQFT_SPHEROID      |       SQFT_SPHERE       | SQM_SPHEROID |
+------------------------+-------------------------+--------------+
| 86.2776043949415999996 | 86.14372702545579999864 | 8.627760e+01 |
+------------------------+-------------------------+--------------+

(1 row)