2020-05-09
PolyLine-Reparatur und -Test
Die Hauptprobleme von PolyLine liegen darin, dass möglicherweise doppelte Punkte beim Erstellen der PolyLine hinzugefügt werden, was zu einer Reihe von geometrischen Berechnungsproblemen im Zusammenhang mit Segmenten führt:
- Vektorberechnung: Zwei doppelte Punkte ergeben einen Nullvektor.
- Längenberechnung: Die Länge eines Segments ist 0, was leicht zu NaN-Problemen führt.
Daher wird beim Konstruieren der PolyLine eine Überprüfung der Punkte in der PolyLine durchgeführt. Falls doppelte Punkte gefunden werden, wird eine Ausnahme ausgelöst.
Es wurden folgende Probleme festgestellt:
getEndin Jts funktioniert nicht korrekt.LinearLocationin Jts hat ein Problem mit der Normalisierung.val loc1 = new LinearLocation(0, 1, 1.0) val loc2 = new LinearLocation(0, 2, 0.0) loc1 compareTo loc2 // Das Ergebnis ist -1Beim Interpolieren kann es vorkommen, dass zwei zu nahe Punkte ausgewählt werden.