Entfernung zwischen zwei Orten
Verfasst: Donnerstag 20. August 2009, 15:05
Hallo,
ich habe gerade versucht die Entfernung zwischen zwei beliebigen Orten auf der Erde zu berechnen und bastle da an einer Formel rum.
Leider funktioniert das nicht so, wie ich es mir wünschen würde. Ich habe mich mit folgender "Anleitung" durchgearbeitet: http://opengeodb.hoppe-media.com/index. ... Entfernung und bekomme keine richtigen Ergebnisse - vllt. findet einer von euch den Fehler... ich kann noch so lange auf die Formeln schauen und komm nicht drauf (vllt. liegt es auch daran, dass ich zu lange draufgeschaut habe^^).
Ich bin für jeden Verbesserungsvorschlag offen und freue mich, wenn das Problem gelöst ist.
Danke!
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!