Für die Skalierung von Grafik-Elementen, die in Ground Overlays für
Google Earth platziert werden sollten, stand ich vor der Notwendigkeit,
Abstände auf der Erdoberfläche berechnen zu müssen. Die folgende
Gleichung hat mir dies ermöglicht.
Entfernung (in km) zwischen zwei Punkten auf der Erdoberfläche:
Die Gleichung liefert die Länge des Großkeisbogens zwischen zwei Punkten
(lat1, lon1) und (lat2, lon2) auf einer Kugel mit einem
Radius von 6371 Kilometern. Da die Erde keine perfekte Kugel ist (6371
km ist der mittlere Radius), stellt die Berechnung eine Näherung
dar, die vor allem für größere Distanzen geeignet ist. Möchte man die
Seemeile (= 1,852 km) als fundamentales Abstandsmaß für das Geosystem
zugrundelegen (der geliefert Wert ist nach wie vor km, aber der
Erdumfang wird als das 60*360-fache einer Seemeile definiert), ersetzt
man 6371 durch
Die Formel geht davon aus, dass die trigonometrischen Funktionen
acos(), sin(), cos() im Bogenmaß (rad) rechnen, was für
Programmiersprachen typischerweise der Fall ist. Liegen
lat1, lon1, lat2, lon2 in Grad vor, was bei
Geopositionen üblich ist, müssen diese vor der Einsetzung ins
Bogenmaß umgerechnet, also mit Pi/180 multipliziert werden.
Begründung und Herleitung der Formel:
Blog Martin Kompf - Entfernungsberechnung