Java |
---------- |
.getGeometry().getBoundary()

Java |
---------- |
.getGeometry().getEnvelope()

Java |
---------- |
.getGeometry().norm()

Java |
---------- |
.getGeometry().getBoundary()

Wenn wir uns für eine (oder mehrere) Flächen/Polygone interessieren, die keine „Ausstanzungen“ enthalten, können wir eine bestimmte Funktion eines Polygons benutzen. Dazu müssen wir die Geometry zuerst zum Polygon casten und dann diese Funktion ausführen:
Java |
---------- |
.getGeometry().getExteriorRing()
Daraus erhalten wir eine geschlossene Linie, die wir mit Hilfe des Polygonizers ausfüllen können.
(Siehe Beispiel unten.)
Alternativ zur OpenJump-Funktion ‚getExteriorRing() ‘ kann der Linestring bereits von der Datenbank erhalten werden, indem 'SELECT geom' einfach um die PostgreSQL-Funktion ergänzt wird:
SQL |
---------- |
--SELECT geom, ...
SELECT ST_ExteriorRing(geom), …
SQL, Beispiel |
---------- |
BasicFeature currentBasicFeature = iter.next();
Set<geometry> currentBasicFeatureList = new HashSet<geometry>();
currentBasicFeatureList.add(((Polygon)currentBasicFeature.getGeometry()).
getExteriorRing());
Polygonizer polygonizer = new Polygonizer();
polygonizer.add(currentBasicFeatureList);
Collection<polygon> results = new java.util.ArrayList();
results = polygonizer.getPolygons();
BasicFeature newBasicFeature = (BasicFeature)
currentBasicFeature.clone(true);
if (results.size() > 0) {
Polygon newPolygon = null;
for (Polygon result : results) {
if (newPolygon == null) {
newPolygon = (Polygon) result;
} else {
newPolygon = (Polygon) newPolygon.union(result);
}
newBasicFeature.setGeometry(newPolygon);
}
}
newCollection.add(newBasicFeature);</polygon></geometry></geometry>
Beim „Biodiversitäts-Calc-Tool“ wird auf die FeatureCollection zusätzlich die Methode ‚eliminateEachOtherContainingParts()‘ ausgeführt, die dafür sorgt, dass die „Ausstanzungen“ wieder vorgenommen werden, die für andere Nutzflächen gemacht wurden. Denn wir wollen nur die Aussatanzungen rückgängig machen, die durch Landschaftselemente entstanden sind, nicht durch andere Nutzflächen. (Ja, es werden dabei „Löcher“ in den Nutzflächen wie „Löcher“ von Landschaftselementen behandelt, da davon ausgegangen wird, dass diese nicht vorkommen.)

Wollen wir einem Element, das nur als Punkt gespeichert ist, als Fläche auffassen, so benötigen wir nur den Durchmesser und puffern den Punkt mit dem halben Durchmesser. Das ist z.B. bei Bäumen günstig.
Wollen wir einer Linie eine Breite hinzufügen und kennen die durchschnittliche Breite, so können wir dies ebenfalls durch Puffern umsetzen. Dies kann z.B. für Flüsse genutzt werden.
Java |
---------- |
geomResult = geom1.difference(geom2);

Symmetrische Differenz |
---------- |
geomResult = geom1.symDifference(geom2);
