Kurs berechnen mit NMEA Daten

Gast #530390
Lesenswert?

Hallo,

hat mir jemand ne Formel um den Kurs zwischen 2 Punkten zu berechnen?
Gegeben lat1, lat2, lon1, lon2. Gesucht Winkel.
Die Formel sollte so einfach als möglich sein, kleine Fehler sind 
zulässig.
Ich habe die Aviation Formula gefunden, aber die Berechnung ist sehr 
aufwendig, gibts ne einfachere Berechnung?

Gruß Michael
(Firma: Ucore Fotografie www.ucore.de) Persönliche Seite #530395
Lesenswert?

Ist das nicht die gleiche Fragestellung, wie diese hier:
Aufgabe 4 (Aufgabentyp: Programmierung)
a) Schreiben Sie ein C-Programm, welches die kürzeste Flugstrecke F 
zwischen zwei Flughäfen
berechnet. Die beiden Flughäfen entsprechen zwei Punkten P1 bzw. P2 auf 
der Erdoberfläche, deren
Positionen durch die Längengrade a1 bzw. a2 und die Breitengrade j1 bzw. 
j2 gegeben sind.
Die kürzeste Flugstrecke kann in zwei Schritten berechnet werden. Zu 
einem Punkt P auf der Erdkugel
sei p
r
= (x,y,z) der auf die Einheitskugel projizierte Punkt bzw. Ortsvektor 
mit den kartesischen
Koordinaten x, y und z. Diese lassen sich aus dem Längengrad a und dem 
Breitengrad j wie folgt
berechnen:
x = cos(a) cos(j), y = sin(a) cos(j), z = sin(j)
Für die zwei Punkte P1 bzw. P2 sind natürlich entsprechende Indizes 1 
und 2 zu verwenden. Mit Hilfe
des Skalarproduktes der Einheitsvektoren 1 p
r
und 2 p
r
und der Arcuscosinus-Funktion erhält man den
Winkel (im Bogenmaß) zwischen 1 p
r
und 2 p
r
. Unter Berücksichtigung des Erdradius R = 6371 km erhält
man schließlich die kürzeste Flugstrecke F:
F = R . arccos( x1 x2 + y1 y2 + z1 z2 ) Für das Programm ist nur diese 
Formel und nicht ihre Herleitung wichtig !
Das Programm soll folgenden Spezifikationen genügen:
· Die Längengrade a1 bzw. a2 und die Breitengrade j1 bzw. j2 beider 
Punkte sind in der Funktion main()
sinnvoll kommentiert einzulesen. Alle Winkel sollen im Gradmaß 
eingegeben werden.
· Die Berechnung der Flugstrecke F soll durch eine in der gleichen 
Programmquelle enthaltene Funktion
abstand() erfolgen, der als Parameter die Werte a1, a2, j1, j2 übergeben 
werden sollen. Das Ergebnis
soll als return-Wert geliefert werden.
· Die Funktion abstand() soll in der Programmquelle hinter der Funktion 
main() angeordnet sein.
· Die berechnete kürzeste Flugstrecke F ist in main() kommentiert 
auszugeben.
Hinweise:
· Beachten Sie, dass sich die Winkelfunktionen in C auf Argumente im 
Bogenmaß beziehen.
· Die Kreiszahl p kann hier mit dem Wert 3.14159 angenähert werden.
· Beachten Sie auch die genaue Bezeichnung der Arcuscosinus-Funktion, 
die als C-Standardfunktion
existiert.
Gast #530415
Lesenswert?

Zur Herleitung (dann kann man abschaetzen was vernachlaessigt werden 
kann).
Der Startvektor (Erdmittelpunkts zu Startkoordinate) und der 
Endvektor(Erdmittelpunkt zu endkoodinate) werden gekreuzt. Dies ist die 
Drehachse, der kuerzeste Weg ist nun in dieser Ebene.
Gast #530419
Lesenswert?

>hat mir jemand ne Formel um den Kurs zwischen 2 Punkten zu berechnen?
>Gegeben lat1, lat2, lon1, lon2. Gesucht Winkel.

Sollte in jeder math. Formelsammlung stehen unter dem Kapitel sphärische 
Trigonometrie.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren