Sto cercando una funzione per dissolvere i confini condivisi tra le funzioni poligonali in una tabella. ST_UNION () fa quasi quello che sto cercando, ma crea un multipoligono da tutti i poligoni nel livello indipendentemente dal fatto che condividano o meno un confine comune. Preferirei solo dissolvere i confini tra poligoni che si toccano. Ho pensato che dovrebbe esserci un modo per usare ST_TOUCHES () ma poi la necessità di una funzione dissolve sembra così comune che sarei sorpreso se non ci fosse una funzione integrata per raggiungere questo obiettivo.
Il caso d'uso è simile al seguente: ho scaricato i dati di Corine Landcover per un grande paese europeo e desidero dissolvere i confini tra diversi tipi di foreste (circa 75.000 poligoni in una tabella). Ho provato ST_UNION, ma mi manca un errore "memoria insufficiente" (30.000 poligoni hanno funzionato):
create table corine00 as
select st_union(the_geom) as the_geom,
sum(area_ha) as area_ha,
substr(code_00,1,2) as code_00
from clc00_c31_forests
group by substr(code_00,1,2)
Nota: tutti i codici foresta iniziano con '31' e sto usando PostGIS 1.4, versione GEOS: 3.2.0-CAPI-1.6.0