Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_CENTROID

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

功能描述

计算作为几何体的几何质心的点。

语法格式

sql
GEOMETRY ST_CENTROID(GEOMETRY g1);
GEOGRAPHY ST_CENTROID(GEOGRAPHY g1, BOOLEAN use_spheroid = true);

参数说明

  • g1:目标GEOMETRY/GEOGRAPHY对象。
  • use_spheroid:距离测量是否使用椭球体,可选。
    • TRUE:使用椭球体。
    • FALSE:在球面上进行测量,计算更快。

函数返回类型

GEOMETRY类型

使用说明

不同类型几何体的质心:

  • (MULTI)POINT:质心是输入坐标的算术平均值。
  • (MULTI)LINESTRING:质心是使用每条线段的加权长度计算的。
  • (MULTI)POLYGON:质心是根据面积计算的。
  • 空几何图形:则返回空的GEOMETRYCOLLECTION。
  • NULL:则返回 NULL。
  • CIRCULARSTRING 或 COMPOUNDCURVE:首先使用CurveToLine转换为线串,然后与 LINESTRING 相同。
  • 混合维度的几何体:质心是最高维度的组件几何图形的质心(因为较低维度的几何图形对质心的权重贡献为零)。

注意

对于多边形几何形状,质心不一定位于多边形的内部。 要构造保证位于多边形内部的点,请使用 ST_POINTONSURFACE。

示例

MULTIPOINT的质心:

sql
SQL> SELECT ST_AsText(ST_Centroid('MULTIPOINT ( -1 0, -1 2, -1 3, -1 4, -1 7, 0 1, 0 3, 1 1, 2 0, 6 0, 7 8, 9 8, 10 6 )'));

+--------------------------------------------+
|                   EXPR1                    |
+--------------------------------------------+
| POINT(2.307692307692308 3.307692307692308) |
+--------------------------------------------+

(1 row)

CIRCULARSTRING :

sql
SQL> SELECT ST_AsText(ST_centroid(g))
     FROM  (SELECT ST_GeomFromText('CIRCULARSTRING(0 2, -1 1,0 0, 0.5 0, 1 0, 2 1, 1 2, 0.5 2, 0 2)')  AS g );

+--------------+
|    EXPR1     |
+--------------+
| POINT(0.5 1) |
+--------------+

(1 row)