[Gfoss] Postgres/Postgis: trasformare un layer Polygo in MultiPolygon

Luca Sigfrido Percich sigfrido a tiscali.it
Mer 1 Giu 2011 10:22:58 CEST


Ciao Luca,

puoi usare direttamente gli operatori di aggregazione delle geometrie
insieme ad un group by sui campi che identificano l'oggetto a cui i
singoli poligoni appartengono per esempio:

select cod_provincia, st_multi(st_union(geom)) from comuni group by
cod_provincia.

La chiamata a ST_Multi() garantisce di ottenere sempre un multipolygon,
infatti se tutti i poligoni che combini sono adiacenti dovresti ottenere
un polygon.

Se invece non hai un codice che identifichi i gruppi di poligoni e vuoi
farlo a mano su dei multipoligoni, allora devi prima fare

update miolayer set geom = st_multi(geom)

Probabilmente devi disabilitare/modificare i constraint creati da
addgeometrycolumn(), tipicamente su un layer poligonale avrai

CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) =
'MULTIPOLYGON'::text

in caso contrario l'update a MultiPolygon fallirebbe.

Sig

Il giorno mer, 01/06/2011 alle 10.00 +0200, Luca Mandolesi ha scritto:
> Ciao a tutti,
> 
> 
> ho un layer in postgis di tipo Polygon, che ha una serie di geometrie
> in realtà appartenenti alla medesima entità, ma che sono disegnate
> separatamente in quanto il livello è di tipo Polygon.
> 
> 
> E' possibile trasformare da dentro postgres il layer da Polygon a
> Multipolygon? Successivamente andrei a prendere una ad una quelle
> geometrie che afferiscono ad una medesima entità, e le mergerei con lo
> strumento di Qgis "Unisci le geometrie selezionate".




Maggiori informazioni sulla lista Gfoss