Berechnen Sie die Entfernung in (x, y) zwischen zwei GPS-Punkten
Ich suche nach einer reibungslosen Methode, um die Entfernung zwischen zwei GPS-Punkten zu berechnen. Daher erhalte ich das Ergebnis wie folgt: "Sie müssen x Meter nach oben und y Meter nach links gehen, damit ich mit einem 2D-Koordinatensystem arbeiten kann. Wo ich meine Position als (0,0) habe und die anderen Positionen die Entfernung in (x, y) in Metern von meiner Position anzeigen.
Meine Idee war es, den Abstand zwischen den Punkten mit der Haversinus-Formel zu berechnen. (Dies gibt meine Hypotenuse zurück)
Außerdem berechne ich die Peilung zwischen diesen beiden Punkten. Das ist mein Alpha.
Mit diesen beiden Werten wollte ich grundlegende Trigonometriefunktionen verwenden, um mein Problem zu lösen.
Also habe ich versucht zu berechnen:catheti_1 = sin(alpha) * hypotenuse, catheti_2 = cos(alpha) * hypotenuse
.
Vielleicht mache ich etwas falsch, aber meine Ergebnisse sind im Moment unbrauchbar.
Meine Frage lautet also: Wie kann ich die Entfernung in x- und y-Richtung zwischen zwei GPS-Punkten berechnen?
Ich berechne Alpha wie folgt:
public static double bearingTo(GPSBean point1, GPSBean point2) {
double lat1 = Math.toRadians(point1.latitude);
double lat2 = Math.toRadians(point2.latitude);
double lon1 = Math.toRadians(point1.longitude);
double lon2 = Math.toRadians(point2.longitude);
double deltaLong = lon2 - lon1;
double y = Math.sin(deltaLong) * Math.cos(lat2);
double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
* Math.cos(lat2) * Math.cos(deltaLong);
double bearing = Math.atan2(y, x);
return (Math.toDegrees(bearing) + 360) % 360;
}