Hợp nhất các đa giác liền kề và trả về tất cả (liền kề và không liền kề) dưới dạng Đa giác?


11

Tôi có một cơ sở dữ liệu postgres với ranh giới hành chính và hình học của chúng. Mỗi ranh giới đó có một số định danh.

Những gì tôi muốn đạt được:

Đầu tiên tôi muốn chọn tất cả các hàng bắt đầu bằng một mã zip cụ thể. Ví dụ:

SELECT * FROM "post" WHERE "post"."ident" LIKE '101%'

Tất cả những hình học liền kề nên được hợp nhất và những hình không phải cũng được trả lại.

Tôi đã thử những tuyên bố đó:

Cái này tôi có từ câu trả lời này:

Tham gia nhiều đa giác nhỏ để tạo thành đa giác lớn hơn bằng PostGIS?

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

Nhưng tuyên bố này chỉ trả về những đa giác liền kề nhưng những cái khác không được bao gồm

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

Tôi nhận được 2 hàng và có vẻ như đây có thể là điều tôi muốn, nhưng tôi không thể nhận được kết quả als ST_AsText.

Có một tuyên bố trả về tất cả các đa giác được hợp nhất khi cần thiết và trả lại lý tưởng như là GeoJSON hoặc có thể là văn bản không?

Câu trả lời:


1

Câu trả lời của 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;

Vì vậy, bạn có thể truy cập hình học và chuyển đổi nó thành GeoJSON. Hình học liền kề được hợp nhất và bạn có được tất cả các hình học khác cũng không được bao gồm trong đa giác hợp nhất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.