Mehr

PostGIS „Overlay“ Style Union, nicht „Dissolve“ Style


Ich versuche, PostGIS zu verwenden, um eine "Vereinigung" von Polygonen zu erstellen. Als ich "PostGIS Union" gegoogelt habe, fand ich die ST_Union-Funktion, die ausführt, was ich eine "Auflösung" nenne, keine Union. Was ich eigentlich tun möchte, ist das, was GRASS als "Overlay" mit dem Operator "OR" bezeichnet, oder QGIS / ArcGIS nennen einfach "Union". Beispielsweise:

Soweit ich das beurteilen kann, muss ich in PostGIS anscheinend sowohl ST_Intersection als auch ST_SymDifference zusammen verwenden, um die gewünschten Ergebnisse zu erzielen. Ich habe mit der folgenden Syntax etwas Erfolg gehabt, aber sie ist schrecklich ineffizient. Gibt es einen besseren/effizienteren Weg, um das zu erreichen, was ich erreichen möchte?

EINFÜGEN IN "CombinedResults" ("geom") SELECT ST_SymDifference( "test1".GEOM ,"test2".GEOM ) FROM "test1","test2"; INSERT INTO "CombinedResults" ("geom") SELECT ST_Intersection( "test1".GEOM ,"test2".GEOM ) FROM "test1","test2"

Vielleicht hilft Ihnen ST_ConvexHull. Sehen Sie sich dieses Snippet an, um zu verstehen, wie es funktioniert http://www.bostongis.com/postgis_concavehull.snippet