Hallo,
ich glaube, meine Navigatorprüfung werde ich nie bestehen. Deshalb bin ich erst gar nicht angetreten.
;-)
Ich soll von Birkenau (Hessen) zur Antipode entlang des Großkreises wandern, fliegen oder segeln. Und dazu die Entfernung berechnen.
Nun weiss ich, dass die als kugelförmig angenommene Erde einen Umfang hat von 40.000 km. Zu den "Gegenfüßlern" müssen es also genau 20.000 km sein. Aber wo ist die zugehörige geografische Koordinate?
Soll dein Verfahren allgemein (für ein beliebiges Paar von Orten) sein? Denn die Koordinaten und die Entfernung nach "gegenüber" bei Annahme einer Kugelform für die Erde zu bestimmen, ist ja trivial:
* Vorzeichen der geographische Breite invertieren
* geographische Länge um 180° erhöhen und wieder auf (-180..+180) normalisieren
* Entfernung per definitionem 20000km, wenn der Umfang zu 40000km angenommen wird
Also nichts einfacher als die Antipode zu Birkenau als Datensatz angelegt:
- D-Birkenau: 8.72381°E, 49.5658°N
- ANT-???: 188.72381°E, -49.5658°N
Okay, 188..° klingt doof, es sind wohl eher -171.27619°
Das ist nur ein kosmetischer Eingriff, da die Winkelfunktionen periodisch sind.
So, nun gebe ich das Land "ANT" ein und erhalte einige dutzend Orte mit Veranstaltungen. Birkenau ist der letzte und 20.037 km entfernt. Uuups- warum 37 km daneben?
Rundungsfehler.
Ich schaue mir die MySQL- Formel für die Entfernungsrechnung an:
SELECT ... ROUND( 6378 * ACOS( SIN(".$rad_lat1.") *SIN(RADIANS(geo_breite)) +COS(".$rad_lat1.") *COS(RADIANS(geo_breite)) *COS(RADIANS(geo_laenge) -".$rad_lon1." ))) dist_km
Bei einer solchen Verschachtelung von Sinus/Cosinus und ihren Umkehrfunktionen wäre ein exaktes Ergebnis eher ein Wunder:
Die interne Darstellung von Fließkommazahlen hat schon "nur" etwa 7 gültige Stellen, nach jedem Rechenschritt wird gerundet, und auch die Winkelfunktionen haben eine inhärente Ungenauigkeit.
Wenn ich mich auf die Rechnung verlasse, werde ich Birkenau überfliegen und 38 km später im Rhein bruchlanden und ersaufen. Das ist ja lebensgefährlich.
Wenn du dich auf eine Navigation über den ganzen Erdball einlassen wolltest, müsstest du schon einen genaueren Rechenknecht bemühen; aber die Annahme der Kugelform für die Erde beschert dir an sich schon eine sehr große Abweichung von der Wirklichkeit.
So long,
Martin
"So schnell waren wir noch nie am Unfallort", sagte der Polizist zu seinem Kollegen, als er einen Laternenmast gerammt hatte.