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.Cloneable
Polygonzug 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 WGS84Polygon
anfangAbschneiden(double offset)
Schneidet den Anfangsteil des Polygones bis zur Länge des angegebenen Offsets ab und gibt diesen Teil zurück.WGS84Polygon
anfangAbschneiden(WGS84Punkt punkt)
Schneidet den Anfangsteil des Polygones bis zu einem gegebenen Punkt ab und gibt diesen Teil zurück.double
berecheneOffset(WGS84Punkt punkt)
Berechnet den Offset eines Punktes auf dem Polygon.WGS84Punkt
bildPunkt(double offset)
Berechnet die Koordinaten des Punktes auf dem Polygonzug, der einen gegebenen Offset vom Anfangspunkt entfernt ist.WGS84Punkt
bildPunkt(WGS84Punkt punkt)
Berechnet die Koordinaten der Abbildung eines Punktes auf das Polygon.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.static WGS84Punkt
bildPunktAufStrecke(WGS84Punkt s1, WGS84Punkt s2, WGS84Punkt punkt)
Berechnet die Koordinaten der Abbildung eines Punktes auf eine Strecke.WGS84Punkt
bildPunktTest(WGS84Punkt punkt)
Berechnet die Koordinaten der Abbildung eines Punktes auf das Polygon.WGS84Polygon
clone()
boolean
equals(java.lang.Object obj)
WGS84Polygon
findeTeilstreckeKleinsterAbstand(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.double
groessterPunktAbstand(WGS84Punkt punkt)
Bestimmt den grössten Abstand eines Punktes vom Polygon.int
hashCode()
boolean
istAnfangsOderEndPunkt(WGS84Punkt punkt)
Test, ob ein Punkt der Anfangs- oder Endpunkt des Polygon ist.boolean
istAnfangsOderEndPunkt(WGS84Punkt punkt, double maxAbstandMeter)
Test, ob ein Punkt der Anfangs- oder Endpunkt des Polygon ist oder in der Nähe dieser liegt.boolean
istAnfangsPunkt(WGS84Punkt punkt)
Test, ob ein Punkt der Anfangspunkt des Polygon ist.boolean
istAnfangsPunkt(WGS84Punkt punkt, double maxAbstandMeter)
Test, ob ein Punkt der Anfangspunkt des Polygon ist oder in dessen Nähe liegt.boolean
istEndPunkt(WGS84Punkt punkt)
Test, ob ein Punkt der Endpunkt des Polygon ist.boolean
istEndPunkt(WGS84Punkt punkt, double maxAbstandMeter)
Test, ob ein Punkt der Endpunkt des Polygon ist oder in dessen Nähe liegt..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.double
kleinsterPunktAbstand(WGS84Punkt punkt)
Bestimmt den kleinsten Abstand eines Punktes vom Polygon.double
laenge()
Berechnet die Länge des Polygonzuges in m.double
laengeAppr()
Berechnet die Länge des Polygonzuges in m.double
laengeExakt()
Berechnet die Länge des Polygonzuges in m.double
laengeKartesisch()
Berechnet die Länge des Polygonzuges in m.boolean
liegtAufPolygon(WGS84Punkt punkt)
Test, ob ein Punkt auf dem Polygon liegt.boolean
liegtAufPolygon(WGS84Punkt punkt, double maxAbweichungMeter)
Test, ob ein Punkt auf dem Polygon liegt.static double
punktAbstandStrecke(WGS84Punkt l1, WGS84Punkt l2, WGS84Punkt punkt)
Bestimmt den Abstand eines Punktes von einer Strecke.static boolean
punktLiegtAufStrecke(WGS84Punkt l1, WGS84Punkt l2, WGS84Punkt punkt)
Test, ob ein Punkt auf einer Strecke liegt.static boolean
punktLiegtAufStrecke(WGS84Punkt l1, WGS84Punkt l2, WGS84Punkt punkt, double maxAbweichungMeter)
Test, ob ein Punkt mit einer zulässigen Abweichung auf einer Strecke liegt.void
sort()
Sortiert das Polygon.java.lang.String
toString()
-
-
-
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
maxAbstandMeter
vom 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
maxAbstandMeter
vom 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
maxAbstandMeter
vom 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:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
clone
public WGS84Polygon clone()
- Overrides:
clone
in classjava.lang.Object
-
-