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)