Haversine-Formel für GPS-Berechnungen: Entfernung und Peilung
Problem:
Berechnung der Entfernung und die Peilung zwischen zwei GPS-Punkten erfordert häufig die Verwendung der Haversine-Entfernungsformel. Bei der Ermittlung der korrekten Peilung können jedoch Probleme auftreten, insbesondere wenn negative Werte ermittelt werden.
Lösung:
Zur Berechnung der Entfernung kann die Haversine-Formel verwendet werden:
from math import radians, cos, sin, asin, sqrt def haversine(lon1, lat1, lon2, lat2): """ Calculate the great circle distance in kilometers between two points on the earth (specified in decimal degrees) """ # convert decimal degrees to radians lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) # haversine formula 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 # Radius of earth in kilometers. Use 3956 for miles. Determines return value units. return c * r
Um die Peilung zu bestimmen, passen Sie die Variable Bearing wie folgt an:
Bearing = atan2(sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2) - sin(lat1)*cos(lat2)*cos(lon2-lon1)) Bearing = degrees(Bearing)
Diese Änderung stellt sicher, dass die Die Peilung liegt zwischen 0 und 360 Grad.
Das obige ist der detaillierte Inhalt vonWie kann ich die GPS-Entfernung und -Peilung mithilfe der Haversine-Formel genau berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!