Menu

Geometrie verschieben

Gismo

Geometrie verschieben bzw. transformieren

Das Verschieben oder Drehen ist weniger intuitiv, da man dazu die Geometrie filtern muss. Wir gehen in diesem Beispiel davon aus, dass wir bereits eine Geometrie (geom) haben.

Java |
---------- |
CoordinateFilter switchLatLon = new CoordinateFilter() {
@Override
public void filter(Coordinate coord) {
double t = coord.x;
coord.x = coord.y;
coord.y = t;
}
};

Wir schreiben uns einen Coordinate Filter. CoordinateFilter ist abstrakt, deswegen müssen wir die Methode ‚filter‘ überschreiben. In diesem Beispiel vertauschen wir die x- mit der y-Koordinate. Aber es sind auch alle möglichen anderen Operationen möglich. (z.B. nach links verschieben mit coord.x = coord.x – 1).

Java |
---------- |
bf.getGeometry().apply(switchLatLon);
bf.getGeometry().geometryChanged();

Danach wenden wir den Filter an und müssen dann auch dem Modell mitteilen, dass sich etwas geändert hat.

Java |
---------- |
// refresh mit wc.layerViewPanel.repaint();

Falls wir den Layer mit der Geometrie bereits gezeichnet haben, müssen wir ein Repaint auslösen, damit die Änderungen sichtbar werden.


Related

Wiki: Inhalt

Auth0 Logo