ST_GEOMETRICMEDIAN
📄字数 730
👁️阅读量 加载中...
功能描述
使用 Weiszfeld 算法计算多点几何的近似几何中值。
语法格式
sql
GEOMETRY ST_GEOMETRICMEDIAN (GEOMETRY geom, DOUBLE tolerance = NULL, INTEGER max_iter = 10000, BOOLEAN fail_if_not_converged = FALSE);参数说明
- geom:目标 GEOMETRY 对象。
- tolerance:容差。可选,默认为 NULL。
- 不指定容差:根据输入几何图形的范围计算公差值。
- 指定容差:输入点 M 值将被解释为它们的相对权重。
- max_iter:最大迭代次数。
- fail_if_not_converged:未收敛时,是否报错。可选,默认:FALSE。
函数返回类型
GEOMETRY 类型
使用说明
- 几何中位数是最小化到输入点的距离总和的点。 它提供了一种中心性度量,与质心(质心)相比,它对异常点不太敏感。
- 该算法进行迭代,直到连续迭代之间的距离变化小于提供的容差参数 tolerance。
- 如果设置fail_if_not_converged 为 TRUE时,在 max_iter 次迭代后仍未满足此条件,则函数会产生错误并退出。
- 该函数支持 3d 并且不会丢失 z-index。
- 该功能支持 M 坐标。
示例
多点的几何中值和质心的比较:
sql
SQL> WITH test AS (
SELECT 'MULTIPOINT((10 10), (10 40), (40 10), (190 190))'::geometry geom)
SELECT
ST_AsText(ST_Centroid(geom)) centroid,
ST_AsText(ST_GeometricMedian(geom)) median
FROM test;
+------------------+----------------------------------------------+
| CENTROID | MEDIAN |
+------------------+----------------------------------------------+
| POINT(62.5 62.5) | POINT(25.017784212497283 25.017784212497283) |
+------------------+----------------------------------------------+
(1 row)