名稱

ST_GeometricMedian — 傳回 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_Centroid