ich habe gerade versucht die Entfernung zwischen zwei beliebigen Orten auf der Erde zu berechnen und bastle da an einer Formel rum.
Code: Alles auswählen
from math import sin, cos, sqrt, asin
# Munich
lat1 = 48.1333
long1 = 11.583
# Berlin
lat2 = 52.5000
long2 = 13.4167
diff_lat = lat2 - lat1
diff_long = long2 - long1
r_equat = 6378.0
r_polar = 6357.0
average_lat = (lat1 + lat2) / 2
ecc = sqrt(1 - (r_equat**2) / (r_polar**2))
r1 = (r_equat * (1 - ecc**2)) / (((1 - ecc**2) * sin(average_lat)**2)**(3/2))
r2 = r_equat / (sqrt(1 - ecc**2 * sin(average_lat)**2))
r_average = (r1 * (diff_lat / (diff_lat + diff_long))) + (r2 * (diff_long / (diff_lat + diff_long)))
res = sin(diff_lat / 2)**2 + cos(lat1) * cos(lat2) * sin(diff_long / 2)**2
if res < 1:
distance = r_average * 2 * asin(sqrt(res))
else:
distance = r_average * 2 * asin(1)
print distance
Ich bin für jeden Verbesserungsvorschlag offen und freue mich, wenn das Problem gelöst ist.
Danke!