У меня есть база данных postgres с административными границами и их геометрией. Каждая из этих границ имеет идентификационный номер.
Чего я хочу добиться:
Сначала я хочу выбрать все строки, которые начинаются с определенного почтового индекса. Например:
SELECT * FROM "post" WHERE "post"."ident" LIKE '101%'
Все те геометрии, которые находятся рядом, должны быть объединены, а те, которые нет, также должны быть возвращены.
Я попробовал эти заявления:
Вот этот я получил из этого ответа:
Объединение множества маленьких полигонов в большой полигон с помощью PostGIS?
with t as (
select (st_dump(geom)).geom
from "post"
where "post"."ident" LIKE '593%'
) select ST_UNION(geom) from t;
Но это утверждение возвращает только те многоугольники, которые являются смежными, но другие не включены
with t as (
select (st_dump(geom)).geom
from "post"
where "post"."ident" LIKE '593%'
) select ((ST_Dump(ST_UNION(geom)))) from t;
Я получаю 2 строки, и кажется, что это может быть то, что я хочу, но я не могу получить результат как ST_AsText.
Есть ли оператор, который возвращает все полигоны, объединенные там, где это необходимо, и в идеале возвращает его как geoJSON или, возможно, как текст?
источник