名称

ST_几何中位数 — 返回一个 MultiPoint 的几何中位数。

概要

geometry ST_GeometricMedian ( geometry geom, float8 tolerance = NULL, int max_iter = 10000, boolean fail_if_not_converged = false);

描述

使用 Weiszfeld 算法计算 MultiPoint 几何体的近似几何中位数。几何中位数是使到输入点距离之和最小的点。它提供了一种中心性度量,与质心(质量中心)相比,它对离群点不那么敏感。

该算法迭代直到连续迭代之间的距离变化小于提供的 tolerance 参数。如果经过 max_iterations 次迭代后仍未满足此条件,则该函数会产生错误并退出,除非 fail_if_not_converged 设置为 false(默认)。

如果没有提供 tolerance 参数,则根据输入几何体的范围计算容差值。

如果存在,则输入点的 M 值被解释为它们的相对权重。

可用性:2.3.0

增强:2.5.0 添加了对 M 作为点权重的支持。

此函数支持 3D,不会丢弃 z 索引。

此函数支持 M 坐标。

示例

MultiPoint 的几何中位数(红色)和质心(蓝绿色)的比较。

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.01778421249728 25.01778421249728)
(1 row)
      

另请参阅

ST_质心