Heim >Backend-Entwicklung >Python-Tutorial >Wie berechnet die Haversine-Formel die Entfernung und Peilung zwischen GPS-Punkten in Python?
In der Welt der Navigation ist die Bestimmung der Entfernung und Peilung zwischen zwei GPS-Punkten von entscheidender Bedeutung. Die Haversine-Formel bietet eine präzise Möglichkeit, diese Werte mithilfe der sphärischen Geometrie zu berechnen.
Um die Entfernung zwischen zwei GPS-Punkten zu berechnen, müssen wir ihre Breiten- und Längengrade umrechnen von Dezimalgrad bis Bogenmaß. Wir wenden dann die Formel an:
dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat/2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon/2) ** 2 c = 2 * asin(sqrt(a)) distance = c * r
wobei dlon und dlat die Unterschiede in Längen- und Breitengrad darstellen, a ein Zwischenwert ist und r der Radius der Erde ist (6371 Kilometer für Kilometer oder 3956 Meilen für). Meilen).
Zusätzlich zur Bestimmung der Entfernung können wir auch die Peilung ermitteln (Azimut) vom ersten Punkt zum zweiten Punkt unter Verwendung der Haversine-Formel:
y = sin(dlon) * cos(lat2) x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dlon) bearing = atan2(y, x)
wobei dlon die Längendifferenz ist, lat1 und lat2 die Breitengrade der beiden Punkte sind, x und y Zwischenwerte sind , und Peilung stellt den Azimut dar, gemessen im Bogenmaß von Norden im Uhrzeigersinn.
Hier ist eine Python-Implementierung der Haversine-Formel zur Berechnung von Entfernung und Peilung:
from math import radians, cos, sin, asin, sqrt def haversine(lon1, lat1, lon2, lat2): lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 c = 2 * asin(sqrt(a)) r = 6371 return c * r
Das obige ist der detaillierte Inhalt vonWie berechnet die Haversine-Formel die Entfernung und Peilung zwischen GPS-Punkten in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!