Ich suche nach einer Funktion, um gemeinsame Grenzen zwischen Polygon-Features in einer Tabelle aufzulösen. ST_UNION () macht fast das, wonach ich suche, aber es erzeugt ein Multipolygon aus allen Polygonen in der Ebene, unabhängig davon, ob sie eine gemeinsame Grenze haben oder nicht. Ich würde lieber nur Grenzen zwischen Polygonen auflösen, die sich berühren. Ich dachte, es sollte eine Möglichkeit geben, ST_TOUCHES () zu verwenden, aber dann scheint die Notwendigkeit einer Überblendungsfunktion so weit verbreitet zu sein, dass ich überrascht wäre, wenn es keine eingebaute Funktion gibt, um dies zu erreichen.
Der Anwendungsfall sieht folgendermaßen aus: Ich habe Corine Landcover-Daten für ein großes europäisches Land heruntergeladen und möchte Grenzen zwischen verschiedenen Waldtypen auflösen (ca. 75.000 Polygone in einer Tabelle). Ich habe ST_UNION ausprobiert, aber es schlägt fehl mit einem "out of memory" -Fehler (30.000 Polygone haben jedoch funktioniert):
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)
Hinweis: Alle Gesamtstrukturcodes beginnen mit '31' und ich verwende PostGIS 1.4, GEOS-Version: 3.2.0-CAPI-1.6.0