ST_GeometricMedian — Returnerar den geometriska medianen för en MultiPoint.
geometry ST_GeometricMedian (
geometry geom, float8 tolerance = NULL, int max_iter = 10000, boolean fail_if_not_converged = false)
;
Beräknar den ungefärliga geometriska medianen i en MultiPoint-geometri med hjälp av Weiszfeld-algoritmen. Den geometriska medianen är den punkt som minimerar summan av avstånden till indatapunkterna. Den ger ett centralitetsmått som är mindre känsligt för avvikande punkter än centroiden (masscentrum).
Algoritmen itererar tills avståndsförändringen mellan på varandra följande iterationer är mindre än den angivna toleransparametern
. Om detta villkor inte har uppfyllts efter max_iterations
iterationer, producerar funktionen ett fel och avslutas, såvida inte fail_if_not_converged
är satt till false
(standard).
Om inget toleransargument
anges beräknas toleransvärdet baserat på omfattningen av indatageometrin.
Om den finns tolkas M-värdena för inmatningspunkterna som deras relativa vikter.
Tillgänglighet: 2.3.0
Förbättrad: 2.5.0 Lagt till stöd för M som vikt för punkter.
Denna funktion stöder 3d och kommer inte att tappa z-index.
Denna funktion stöder M-koordinater.
Jämförelse av den geometriska medianen (röd) och centroiden (turkos) för en 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)