Class WGS84Polygon
- java.lang.Object
-
- de.bsvrz.sys.funclib.bitctrl.geolib.WGS84Polygon
-
- All Implemented Interfaces:
java.lang.Cloneable
public class WGS84Polygon extends java.lang.Object implements java.lang.CloneablePolygonzug in WGS84-Koordinaten. Alle Längenangaben für Offsets u. ä. werden, wenn nicht anders angegeben, in Meter notiert.
-
-
Constructor Summary
Constructors Constructor Description WGS84Polygon(double[] laenge, double[] breite)Konstruktor für Polygon mit WGS84-Koordinaten in Dezimalnotation.WGS84Polygon(java.util.List<WGS84Punkt> punktliste)Konstruktor für Polygon aus Liste von Punkten.
-
Method Summary
Modifier and Type Method Description WGS84PolygonanfangAbschneiden(double offset)Schneidet den Anfangsteil des Polygones bis zur Länge des angegebenen Offsets ab und gibt diesen Teil zurück.WGS84PolygonanfangAbschneiden(WGS84Punkt punkt)Schneidet den Anfangsteil des Polygones bis zu einem gegebenen Punkt ab und gibt diesen Teil zurück.doubleberecheneOffset(WGS84Punkt punkt)Berechnet den Offset eines Punktes auf dem Polygon.WGS84PunktbildPunkt(double offset)Berechnet die Koordinaten des Punktes auf dem Polygonzug, der einen gegebenen Offset vom Anfangspunkt entfernt ist.WGS84PunktbildPunkt(WGS84Punkt punkt)Berechnet die Koordinaten der Abbildung eines Punktes auf das Polygon.static WGS84PunktbildPunktAufStrecke(WGS84Punkt s1, WGS84Punkt s2, double offset)Berechnet die Koordinaten des Punktes auf der Strecke, der einen gegebenen Offset vom Anfangspunkt der Strecke entfernt ist.static WGS84PunktbildPunktAufStrecke(WGS84Punkt s1, WGS84Punkt s2, WGS84Punkt punkt)Berechnet die Koordinaten der Abbildung eines Punktes auf eine Strecke.WGS84PunktbildPunktTest(WGS84Punkt punkt)Berechnet die Koordinaten der Abbildung eines Punktes auf das Polygon.WGS84Polygonclone()booleanequals(java.lang.Object obj)WGS84PolygonfindeTeilstreckeKleinsterAbstand(WGS84Punkt punkt)Berechnet die Teilstrecke des Polygons, für die der Abstand eines gegebenen Punktes von dieser Strecke minimal ist.java.util.ArrayList<WGS84Punkt>getKoordinaten()Gibt die Koordinaten des Polygons als Punktliste zurück.doublegroessterPunktAbstand(WGS84Punkt punkt)Bestimmt den grössten Abstand eines Punktes vom Polygon.inthashCode()booleanistAnfangsOderEndPunkt(WGS84Punkt punkt)Test, ob ein Punkt der Anfangs- oder Endpunkt des Polygon ist.booleanistAnfangsOderEndPunkt(WGS84Punkt punkt, double maxAbstandMeter)Test, ob ein Punkt der Anfangs- oder Endpunkt des Polygon ist oder in der Nähe dieser liegt.booleanistAnfangsPunkt(WGS84Punkt punkt)Test, ob ein Punkt der Anfangspunkt des Polygon ist.booleanistAnfangsPunkt(WGS84Punkt punkt, double maxAbstandMeter)Test, ob ein Punkt der Anfangspunkt des Polygon ist oder in dessen Nähe liegt.booleanistEndPunkt(WGS84Punkt punkt)Test, ob ein Punkt der Endpunkt des Polygon ist.booleanistEndPunkt(WGS84Punkt punkt, double maxAbstandMeter)Test, ob ein Punkt der Endpunkt des Polygon ist oder in dessen Nähe liegt..booleanistIdentisch(WGS84Polygon testpolygon, double maxabweichungGrad)Test, ob das Polygon gleich einem anderen Polygon ist, wobei eine bestimmte Abweichung der Koordinaten nicht überschritten werden darf.doublekleinsterPunktAbstand(WGS84Punkt punkt)Bestimmt den kleinsten Abstand eines Punktes vom Polygon.doublelaenge()Berechnet die Länge des Polygonzuges in m.doublelaengeAppr()Berechnet die Länge des Polygonzuges in m.doublelaengeExakt()Berechnet die Länge des Polygonzuges in m.doublelaengeKartesisch()Berechnet die Länge des Polygonzuges in m.booleanliegtAufPolygon(WGS84Punkt punkt)Test, ob ein Punkt auf dem Polygon liegt.booleanliegtAufPolygon(WGS84Punkt punkt, double maxAbweichungMeter)Test, ob ein Punkt auf dem Polygon liegt.static doublepunktAbstandStrecke(WGS84Punkt l1, WGS84Punkt l2, WGS84Punkt punkt)Bestimmt den Abstand eines Punktes von einer Strecke.static booleanpunktLiegtAufStrecke(WGS84Punkt l1, WGS84Punkt l2, WGS84Punkt punkt)Test, ob ein Punkt auf einer Strecke liegt.static booleanpunktLiegtAufStrecke(WGS84Punkt l1, WGS84Punkt l2, WGS84Punkt punkt, double maxAbweichungMeter)Test, ob ein Punkt mit einer zulässigen Abweichung auf einer Strecke liegt.voidsort()Sortiert das Polygon.java.lang.StringtoString()
-
-
-
Constructor Detail
-
WGS84Polygon
public WGS84Polygon(double[] laenge, double[] breite)Konstruktor für Polygon mit WGS84-Koordinaten in Dezimalnotation. Beispiel +4.354551 +50.839402 bedeutet 4°. 354551 O 50°. 839402 N- Parameters:
laenge- Längebreite- Breite- Throws:
java.lang.IllegalArgumentException- wenn die beiden Felder eine unterschliedliche Länge besitzen.
-
WGS84Polygon
public WGS84Polygon(java.util.List<WGS84Punkt> punktliste)
Konstruktor für Polygon aus Liste von Punkten.- Parameters:
punktliste- Punktliste
-
-
Method Detail
-
bildPunktAufStrecke
public static WGS84Punkt bildPunktAufStrecke(WGS84Punkt s1, WGS84Punkt s2, double offset)
Berechnet die Koordinaten des Punktes auf der Strecke, der einen gegebenen Offset vom Anfangspunkt der Strecke entfernt ist. Die Strecke ist definiert durch einen Anfangs- und Endpunkt. Wenn der gegebene Offset größer als die Länge der Strecke ist, wird eine IllegalArgumentException geworfen.- Parameters:
s1- der Anfangspunkt der Streckes2- der Endpunkt der Streckeoffset- der Offset (in Meter) beginnend vom Anfang der Strecke, bei dem der Punkt liegen soll- Returns:
- der Punkt.
- Throws:
java.lang.IllegalArgumentException- die übergebenen Argumente sind in ihrer Kombination nicht zulässig
-
bildPunktAufStrecke
public static WGS84Punkt bildPunktAufStrecke(WGS84Punkt s1, WGS84Punkt s2, WGS84Punkt punkt)
Berechnet die Koordinaten der Abbildung eines Punktes auf eine Strecke. Die Strecke ist definiert durch einen Anfangs- und Endpunkt. Wenn der Punkt nicht auf der Strecke liegt, wird die Bildpunkt-Koordinate durch das Lot vom Punkt auf die Strecke berechnet. Kann kein Lot gefällt werden, wird als Ergebnis der Punkt der Linie zurückgeliefert, welcher dem Punkt am nächsten liegt, also entweder der Anfangs- oder der Endpunkt.- Parameters:
s1- der Anfangspunkt der Streckes2- der Endpunkt der Streckepunkt- der abzubildende Punkt- Returns:
- die Koordinaten des Bildpunktes
-
punktAbstandStrecke
public static double punktAbstandStrecke(WGS84Punkt l1, WGS84Punkt l2, WGS84Punkt punkt)
Bestimmt den Abstand eines Punktes von einer Strecke.- Parameters:
l1- Startpunkt der Streckel2- Endpunkt der Streckepunkt- Punkt- Returns:
- Abstand des Punktes von der Strecke in Meter
-
punktLiegtAufStrecke
public static boolean punktLiegtAufStrecke(WGS84Punkt l1, WGS84Punkt l2, WGS84Punkt punkt)
Test, ob ein Punkt auf einer Strecke liegt.- Parameters:
l1- Startpunkt der Streckel2- Endpunkt der Streckepunkt- Punkt- Returns:
- true, wenn der Punkt auf der Strecke liegt, sonst false.
-
punktLiegtAufStrecke
public static boolean punktLiegtAufStrecke(WGS84Punkt l1, WGS84Punkt l2, WGS84Punkt punkt, double maxAbweichungMeter)
Test, ob ein Punkt mit einer zulässigen Abweichung auf einer Strecke liegt.- Parameters:
l1- Startpunkt der Streckel2- Endpunkt der Streckepunkt- PunktmaxAbweichungMeter- maximal zulässige Abweichung in m- Returns:
- true, wenn der Punkt auf der Strecke liegt, sonst false.
-
anfangAbschneiden
public WGS84Polygon anfangAbschneiden(double offset)
Schneidet den Anfangsteil des Polygones bis zur Länge des angegebenen Offsets ab und gibt diesen Teil zurück. Das Polygon wird um den entsprechenden Teil gekürzt. Wenn der gegebene Offset größer als die Länge des Polygones ist, wird eine IllegalArgumentException geworfen.- Parameters:
offset- der Offset (in Meter) beginnend vom Anfang des Polygones, bei dem der Schnittpunkt liegen soll- Returns:
- Teil des Polygones bis zum Offset-Punkt.
- Throws:
java.lang.IllegalArgumentException- die übergebenen Argumente sind in ihrer Kombination nicht zulässig
-
anfangAbschneiden
public WGS84Polygon anfangAbschneiden(WGS84Punkt punkt)
Schneidet den Anfangsteil des Polygones bis zu einem gegebenen Punkt ab und gibt diesen Teil zurück. Das Polygon wird um den entsprechenden Teil gekürzt. Wenn der gegebene Punkt nicht auf dem Polygon liegt, wird eine IllegalArgumentException geworfen.- Parameters:
punkt- Schnittpunkt- Returns:
- Teil des Polygones bis zum Offset-Punkt.
- Throws:
java.lang.IllegalArgumentException- wenn der Punkt nicht auf dem Polygon liegt
-
berecheneOffset
public double berecheneOffset(WGS84Punkt punkt)
Berechnet den Offset eines Punktes auf dem Polygon.- Parameters:
punkt- Punkt, für den der Offset berechnet werden soll- Returns:
- Offset (in m).
- Throws:
java.lang.IllegalArgumentException- wenn der Punkt nicht auf dem Polygon liegt.
-
bildPunkt
public WGS84Punkt bildPunkt(double offset)
Berechnet die Koordinaten des Punktes auf dem Polygonzug, der einen gegebenen Offset vom Anfangspunkt entfernt ist. Wenn der gegebene Offset größer als die Länge des Polygones ist, wird eine IllegalArgumentException geworfen.- Parameters:
offset- der Offset (in Meter) beginnend vom Anfang des Polygones, bei dem der Punkt liegen soll- Returns:
- der berechnete Punkt.
- Throws:
java.lang.IllegalArgumentException- wenn der Offset länger als das Polygon ist.
-
bildPunkt
public WGS84Punkt bildPunkt(WGS84Punkt punkt)
Berechnet die Koordinaten der Abbildung eines Punktes auf das Polygon. Wenn der Punkt nicht auf dem Polygon liegt, wird die Bildpunkt-Koordinate durch das Lot vom Punkt auf den Streckenteil des Polygones mit dem kleinsten Abstand zum Punkt berechnet. Kann kein Lot gefällt werden, wird als Ergebnis der Punkt der Linie zurückgeliefert, welcher dem Punkt am nächsten liegt, also entweder der Anfangs- oder der Endpunkt.- Parameters:
punkt- der abzubildende Punkt- Returns:
- Punkt.
- Throws:
java.lang.IllegalArgumentException- wenn der Bildpunkt nicht bestimmt werden kann
-
bildPunktTest
public WGS84Punkt bildPunktTest(WGS84Punkt punkt)
Berechnet die Koordinaten der Abbildung eines Punktes auf das Polygon. Wenn der Punkt nicht auf dem Polygon liegt, wird die Bildpunkt-Koordinate durch das Lot vom Punkt auf den Streckenteil des Polygones mit dem kleinsten Abstand zum Punkt berechnet. Kann kein Lot gefällt werden, wird als Ergebnis der Punkt der Linie zurückgeliefert, welcher dem Punkt am nächsten liegt, also entweder der Anfangs- oder der Endpunkt.- Parameters:
punkt- der abzubildende Punkt- Returns:
- der Punkt.
- Throws:
java.lang.IllegalArgumentException- wenn der Bildpunkt nicht ermittelt werden kann
-
findeTeilstreckeKleinsterAbstand
public WGS84Polygon findeTeilstreckeKleinsterAbstand(WGS84Punkt punkt)
Berechnet die Teilstrecke des Polygons, für die der Abstand eines gegebenen Punktes von dieser Strecke minimal ist.- Parameters:
punkt- Punkt- Returns:
- gefundene Teilstrecke als Polygon oder null
-
getKoordinaten
public java.util.ArrayList<WGS84Punkt> getKoordinaten()
Gibt die Koordinaten des Polygons als Punktliste zurück.- Returns:
- Punktkoordinaten
-
istAnfangsOderEndPunkt
public boolean istAnfangsOderEndPunkt(WGS84Punkt punkt)
Test, ob ein Punkt der Anfangs- oder Endpunkt des Polygon ist.- Parameters:
punkt- zu testender Punkt- Returns:
- true, wenn der Punkt der Anfangs- oder Endpunkt des Polygons ist, sonst false
-
istAnfangsOderEndPunkt
public boolean istAnfangsOderEndPunkt(WGS84Punkt punkt, double maxAbstandMeter)
Test, ob ein Punkt der Anfangs- oder Endpunkt des Polygon ist oder in der Nähe dieser liegt.- Parameters:
punkt- zu testender PunktmaxAbstandMeter- max. zulässiger Abstand in Meter- Returns:
- true, wenn der Punkt der Anfangs- oder Endpunkt des Polygons ist oder
maximal
maxAbstandMetervom Anfangs- oder Endpunkt entfernt ist, sonst false
-
istAnfangsPunkt
public boolean istAnfangsPunkt(WGS84Punkt punkt)
Test, ob ein Punkt der Anfangspunkt des Polygon ist.- Parameters:
punkt- zu testender Punkt- Returns:
- true, wenn der Punkt der Anfangspunkt des Polygons ist, sonst false
-
istAnfangsPunkt
public boolean istAnfangsPunkt(WGS84Punkt punkt, double maxAbstandMeter)
Test, ob ein Punkt der Anfangspunkt des Polygon ist oder in dessen Nähe liegt.- Parameters:
punkt- zu testender PunktmaxAbstandMeter- max. zulässiger Abstand in Meter- Returns:
- true, wenn der Punkt der Anfangpunkt des Polygons ist oder maximal
maxAbstandMetervom Anfangspunkt entfernt ist, sonst false
-
istEndPunkt
public boolean istEndPunkt(WGS84Punkt punkt)
Test, ob ein Punkt der Endpunkt des Polygon ist.- Parameters:
punkt- zu testender Punkt- Returns:
- true, wenn der Punkt der Endpunkt des Polygons ist, sonst false
-
istEndPunkt
public boolean istEndPunkt(WGS84Punkt punkt, double maxAbstandMeter)
Test, ob ein Punkt der Endpunkt des Polygon ist oder in dessen Nähe liegt..- Parameters:
punkt- zu testender PunktmaxAbstandMeter- max. zulässiger Abstand in Meter- Returns:
- true, wenn der Punkt der Endpunkt des Polygons ist oder maximal
maxAbstandMetervom Endpunkt entfernt ist, sonst false
-
istIdentisch
public boolean istIdentisch(WGS84Polygon testpolygon, double maxabweichungGrad)
Test, ob das Polygon gleich einem anderen Polygon ist, wobei eine bestimmte Abweichung der Koordinaten nicht überschritten werden darf.- Parameters:
testpolygon- Das zu testende PolgonmaxabweichungGrad- maximal zulässige Abweichung in Grad- Returns:
- true, wenn die Polygone im o.g. Sinne identisch sind, sonst false
-
kleinsterPunktAbstand
public double kleinsterPunktAbstand(WGS84Punkt punkt)
Bestimmt den kleinsten Abstand eines Punktes vom Polygon.- Parameters:
punkt- Der Punkt, für den der Abstand bestimmt werden soll- Returns:
- der kleinste Abstand des Punktes vom Polygon (in m)
-
groessterPunktAbstand
public double groessterPunktAbstand(WGS84Punkt punkt)
Bestimmt den grössten Abstand eines Punktes vom Polygon.- Parameters:
punkt- Der Punkt, für den der Abstand bestimmt werden soll- Returns:
- der grösste Abstand des Punktes vom Polygon (in m)
-
laenge
public double laenge()
Berechnet die Länge des Polygonzuges in m.- Returns:
- Länge in Meter.
-
laengeAppr
public double laengeAppr()
Berechnet die Länge des Polygonzuges in m.- Returns:
- Länge in Meter.
-
laengeExakt
public double laengeExakt()
Berechnet die Länge des Polygonzuges in m.- Returns:
- Länge in Meter.
-
laengeKartesisch
public double laengeKartesisch()
Berechnet die Länge des Polygonzuges in m.- Returns:
- Länge in Meter.
-
liegtAufPolygon
public boolean liegtAufPolygon(WGS84Punkt punkt)
Test, ob ein Punkt auf dem Polygon liegt.- Parameters:
punkt- Punkt- Returns:
- true, wenn der Punkt auf dem Polygonzug liegt, sonst false
-
liegtAufPolygon
public boolean liegtAufPolygon(WGS84Punkt punkt, double maxAbweichungMeter)
Test, ob ein Punkt auf dem Polygon liegt.- Parameters:
punkt- PunktmaxAbweichungMeter- maximal zulässige Abweichung in m- Returns:
- true, wenn der Punkt auf dem Polygonzug liegt, sonst false
-
sort
public void sort()
Sortiert das Polygon.
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
clone
public WGS84Polygon clone()
- Overrides:
clonein classjava.lang.Object
-
-