de
en

Polygone aggregieren

Häufig ist es für kartographische Zwecke erforderlich unzusammenhängende Polygone zusammen zu fassen und auf diese Weise zu generalisieren. Z.B. wenn Gruppen von einzelnen Gebäuden zu einem Siedlungsgebiet zusammen gefasst werden sollen. Mit der von Kappasys entwickelten PostGIS Aggregat-Funktion aggregatepolygons() kann diese Aggregation auf einfache Weise durchgeführt werden.

Die Aggregat-Funktion aggregatepolygons(geometry, double precision, boolean) erwartet 3 Parameter

  1. die Geometriespalte
  2. Schwellenwert, innerhalb dessen Polygone zusammen gefasst werden in Karteneinheiten
  3. Orthogonale Aggregation der Objekte. True=orthogonal und False=nicht orthogonal. In Abbildung 1 ist die orthogonale Aggregation durchgeführt worden. In Abbildung 2 ein Beispiel für nicht orthogonale Aggregation

Installation

Um nicht valide Geometrien während des Aggregationsprozesses zu vermeiden muss zuerst die PostGIS-Funktion cleangeometry() installiert werden (siehe Downloads). Erst im zweiten Schritt kann die Aggregationsfunktion aggregatepolygons() installiert werden.

 

$ psql <dbname> -U <user> -h <server> -f cleanGeometry.sql

$ psql <dbname> -U <user> -h <server> -f aggregatePolygons.sql

 

Downloads

cleanGeometry.sql

Geometry Cleaner Rev 1.0

2.4 K

aggregatePolygons.sql

Polygon Aggregation Rev. 1.0

3.0 K

Beispiel 1: Orthogonale Aggregation von Gebäuden

In der Abbildung 1 ist das Resultat einer orthogonalen Aggregation von Gebäuden dargestellt.

 

 

Query:

select aggregatepolygons(wkb_geometry, 50, true) from buildings group by art;

Abbildung 1: Orthogonale Aggregation von Gebäuden

Beispiel 2: Nicht orthogonale Aggregation

Das Ergebnis einer nicht orthogonalen Aggregation ist in Abbildung 2 dargestellt. In der Regel werden natürliche Objekte wie z.B. Wald auf diese Weise zusammengefasst.

Query:

select aggregatepolygons(wkb_geometry, 50, false) from forest group by art;

 

Abbildung 2: Nicht orthogonale Aggregation von natürlichen Objekten