Berechnen des Abstands zwischen zwei Punkten anhand von Breiten- und Längengrad
Die genaue Berechnung des Abstands zwischen zwei Punkten basierend auf ihrem Breiten- und Längengrad ist von entscheidender Bedeutung die Krümmung der Erdoberfläche zu berücksichtigen. Die Haversine-Methode, eine bekannte Formel, berücksichtigt diese Krümmung und liefert präzise Ergebnisse.
Dommers Code
Dommers Code verwendet die Haversine-Formel, um den Abstand zu berechnen. Es berücksichtigt jedoch keine Höhenunterschiede zwischen den beiden Punkten.
Empfohlene Implementierung
Für GPS-Tracks oder Anwendungen, bei denen die Höhe eine Rolle spielt, sollten Sie dies als geändert betrachten Implementierung:
public static double distance(double lat1, double lat2, double lon1,
double lon2, double el1, double el2) {
final int R = 6371; // Radius of the earth
double latDistance = Math.toRadians(lat2 - lat1);
double lonDistance = Math.toRadians(lon2 - lon1);
double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
* Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double distance = R * c * 1000; // convert to meters
double height = el1 - el2;
distance = Math.pow(distance, 2) Math.pow(height, 2);
return Math.sqrt(distance);
}
Dieser Code beinhaltet sowohl die Haversine-Formel als auch Höhenunterschiede, um den Abstand zwischen zwei Punkten genau zu berechnen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3