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)