Как объединить границы полигонов в postgis?

Хочу объединить границы полигонов, при этом саму границу не стирать, пробовал через st_snap, но она мне возвращает те же точки, предполагаю из за того что полигоны пересекаются.

-- insert into polygons(geometry)
-- values(st_geomfromtext('POLYGON((31.915283203125004 59.45903485454137,31.744995117187504 59.54824090473033,31.618652343750004 59.58163240681246,31.464843750000004 59.60943336371317,31.283569335937504 59.65664225341025,31.195678710937504 59.712097173322924,31.129760742187504 59.764694368571924,31.387939453125004 59.795107566022416,31.563720703125004 59.8503333158569,31.744995117187504 59.891692580830366,32.31628417968751 59.93575245264131,32.34924316406251 59.85585085709834,32.34375000000001 59.803397265089934,32.23388671875001 59.75086102411168,32.18994140625001 59.6954703349364,32.08007812500001 59.6372113386035,32.06909179687501 59.55937508586867,31.915283203125004 59.45903485454137))')),
--  (st_geomfromtext('POLYGON((32.33825683593751 59.93024816649769,32.22290039062501 59.83101471582275,32.07458496093751 59.706555811426156,31.997680664062504 59.60109549032134,31.920776367187504 59.51481626909169,31.931762695312504 59.428315784042574,32.11303710937501 59.37518983291977,32.26684570312501 59.32758544549431,32.40966796875001 59.26868782080824,32.50305175781251 59.24622380205539,32.71179199218751 59.30796423218468,32.86560058593751 59.34719533619743,32.99743652343751 59.39756880753553,33.15124511718751 59.45624336447568,33.29956054687501 59.50366735715106,33.50830078125001 59.57606945649408,33.47534179687501 59.64831609639064,33.11828613281251 59.664966343958056,32.90405273437501 59.753628151319106,32.49755859375001 59.886180984146236,32.33825683593751 59.93024816649769))')),
--  (st_geomfromtext('POLYGON((31.124267578125004 59.764694368571924,31.294555664062504 59.712097173322924,31.508789062500004 59.6372113386035,31.794433593750004 59.56215805601119,31.898803710937504 59.49530325516139,31.904296875000004 59.450659692819414,31.799926757812504 59.37239142233719,31.788940429687504 59.31917774076452,31.635131835937504 59.37518983291977,31.5362548828125 59.3527960830432,31.552734375000004 59.21531159041328,31.415405273437504 59.18437135920059,31.151733398437504 59.33318942659219,30.959472656250004 59.48693708019829,30.800170898437504 59.61221219518693,30.959472656250004 59.73148471584181,31.124267578125004 59.764694368571924))'))

select st_astext(st_snap(geometry, geometry, 0.1)) from polygons
where id in (5, 6, 7);

Это тестовый пример, в реальной задаче полигонов и точек будет очень много,где то будут нахлесты, а где то пробелы, как исправить? 1221341234


Ответы (0 шт):