Вы можете использовать PostGIS ST_GeometricMedian
для этой цели. Сначала вам потребуется st_collect
агрегированных точек.
Получив центральную точку, вы можете проверить ее почтовый индекс, используя ваш любимый геокодер или собственный слой многоугольника.
Изменение В примере do c для использования нескольких точек вместо одной, мы получаем
WITH test(pid,geom) AS (values
(1,'POINT(0 0)'::geometry),
(1,'POINT(1 1)'::geometry),
(1,'POINT(2 2)'::geometry),
(1,'POINT(200 200)'::geometry))
SELECT
ST_AsText(ST_Centroid(st_collect(geom))) centroid,
ST_AsText(ST_GeometricMedian(st_collect(geom))) median
FROM test
GROUP BY pid;
centroid | median
--------------------+----------------------------------------
POINT(50.75 50.75) | POINT(1.9761550281255 1.9761550281255)