Estoy buscando una función para disolver los límites compartidos entre las características de polígono en una tabla. ST_UNION () casi hace lo que estoy buscando, pero crea un multipolígono a partir de todos los polígonos en la capa, independientemente de si comparten un límite común o no. Prefiero solo disolver los límites entre los polígonos que se tocan. Pensé que debería haber alguna forma de usar ST_TOUCHES (), pero la necesidad de una función de disolución parece tan común que me sorprendería si no hay una función incorporada para lograr esto.
El caso de uso se ve así: descargué datos de Corine Landcover para un gran país europeo y quiero disolver los límites entre los diferentes tipos de bosques (aproximadamente 75,000 polígonos en una tabla). Intenté ST_UNION, pero me falla con un error de "falta de memoria" (30,000 polígonos sí funcionaron):
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: Todos los códigos forestales comienzan con '31' y estoy usando PostGIS 1.4, versión GEOS: 3.2.0-CAPI-1.6.0