Bitişik çokgenleri birleştirin ve tümünü (bitişik ve bitişik olmayan) Multipolygon?


11

Yönetim sınırları ve geometrileri olan bir postgres veri tabanım var. Bu sınırların her birinin bir kimlik numarası vardır.

Ne elde etmek istiyorum:

İlk önce belirli bir posta kodu ile başlayan tüm satırları seçmek istiyorum. Örneğin:

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

Bitişik olan tüm Geometriler birleştirilmeli ve olmayan Geometriler de döndürülmelidir.

Bu ifadeleri denedim:

Bu, bu cevaptan aldım:

PostGIS kullanarak daha büyük çokgen oluşturmak için çok sayıda küçük çokgen birleştiriyor musunuz?

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

Ancak bu ifade yalnızca bitişik olan çokgenleri döndürür, ancak diğerleri dahil değildir

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

2 satır alıyorum ve bu istediğim gibi görünüyor, ama als ST_AsText sonucu elde edemiyorum.

Gerektiğinde birleştirilen tüm çokgenleri döndüren ve ideal olarak geoJSON veya belki metin olarak döndüren bir ifade var mı?

Yanıtlar:


1

OP'nin cevabı:

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;

Böylece geometrilere erişebilir ve geoJSON'a dönüştürebilirsiniz. Bitişik geometriler birleştirilir ve birleştirilmiş çokgene dahil olmayan diğer tüm geometrileri elde edersiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.