合并相邻的多边形并将所有(相邻和不相邻)返回为Multipolygon?


11

我有一个带有管理边界及其几何的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行,看来这可能就是我想要的,但是我无法得到结果ALS ST_AsText。

是否有一条语句返回所有在必要时合并的多边形,并理想地以geoJSON或文本形式返回?

Answers:


1

OP的答案:

with t as (
select (st_dump(geom)).geom 
from "post"
where "post"."ident" LIKE '593%'
) select ST_AsGeoJSON((ST_Dump(ST_UNION(geom))).geom) from t;

因此,您可以访问几何并将其转换为geoJSON。合并相邻的几何图形,您将获得所有其他几何图形,这些几何图形也不包含在合并的多边形中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.