الاسم
ST_GeometricMedian — تُعيد الوسيط الهندسي لـ MultiPoint.
المختصر
geometry ST_GeometricMedian ( geometry geom, float8 tolerance = NULL, int max_iter = 10000, boolean fail_if_not_converged = false);
الوصف
تحسب الوسيط الهندسي التقريبي لشكل MultiPoint باستخدام خوارزمية Weiszfeld. الوسيط الهندسي هو النقطة التي تجعل مجموع المسافات إلى النقاط المُدخلة أصغر ما يمكن. ويوفّر مقياساً للمركزية أقل تأثراً بالنقاط الشاذة من المركز (مركز الكتلة).
تُكرّر الخوارزمية حتى يصبح تغيّر المسافة بين التكرارات المتتالية أقل من المعامل tolerance المُمرّر. وإذا لم يتحقق هذا الشرط بعد max_iterations تكراراً، تُصدر الدالة خطأً وتخرج، ما لم تُضبط fail_if_not_converged على false (القيمة الافتراضية).
إذا لم يُمرَّر الوسيط tolerance فتُحسب قيمة التسامح بناءً على امتداد الشكل المُدخل.
إذا وُجدت قيم M للنقاط المُدخلة فإنها تُفسَّر على أنها أوزانها النسبية.
متاحة منذ: 2.3.0
حُسّنت في: 2.5.0 أُضيف دعم M بوصفها وزناً للنقاط.
تدعم هذه الدالة الأبعاد الثلاثية ولا تُسقط قيمة 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)