Heim >Backend-Entwicklung >Python-Tutorial >Warum ist meine Entfernungsberechnung für Breiten- und Längengrad falsch?

Warum ist meine Entfernungsberechnung für Breiten- und Längengrad falsch?

Susan Sarandon
Susan SarandonOriginal
2024-11-06 00:00:03241Durchsuche

Why is My Latitude/Longitude Distance Calculation Incorrect?

Entfernung mithilfe von Breiten- und Längengrad berechnen: Beheben eines Codierungsfehlers

Beim Versuch, die Formel zum Ermitteln von Entfernungen basierend auf Breiten- und Längengrad umzusetzen, Ein Benutzer ist auf ein unerwartetes Ergebnis gestoßen. Die im referenzierten Applet angegebene Formel funktionierte für die bereitgestellten Testpunkte korrekt. Der Code des Benutzers gab jedoch einen ungenauen Entfernungswert zurück.

Codeprüfung

Bei der Untersuchung des Codes wurde festgestellt, dass der Benutzer die veraltete Vincenty-Entfernungsberechnungsmethode verwendete , die in GeoPy Version 1.13 durch die genauere Funktion geopy.distance.distance() ersetzt wurde. Die Haversinus-Formel, die der Benutzercode verwendet hat, geht von einem kugelförmigen Erdmodell aus und kann Fehler von bis zu 0,5 % verursachen.

Verwendung von geopy.distance

Zur Lösung Um das Problem zu lösen, wird empfohlen, zur Berechnung der Entfernung auf die genauere Funktion geopy.distance.geodesic() umzusteigen. Diese Funktion nutzt Ellipsoidmodelle wie WGS-84 und liefert ein genaueres Ergebnis:

<code class="python">import geopy.distance

coords_1 = (52.2296756, 21.0122287)
coords_2 = (52.406374, 16.9251681)

distance = geopy.distance.geodesic(coords_1, coords_2).km
print(distance)</code>

Mit dem überarbeiteten Code wird die Entfernung zwischen den beiden Punkten genau mit 279,352 Kilometern berechnet.

Das obige ist der detaillierte Inhalt vonWarum ist meine Entfernungsberechnung für Breiten- und Längengrad falsch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn