Geokoordinaten verschieben nach Vorgabe der Richtung und der Entfernung

11/02/2010 - 13:37 von Marc Waesche | Report spam
Hallo Leute!

Ich habe es mir einfacher vorgestellt, aber jetzt habe ich doch beschlossen,
lieber einen News-Client zu installieren und in dieser Newsgroup um Hilfe zu
bitten. :-)

Zu meinem Problem:
Ich habe z.B. die Geokoordinaten 51.37662,7.37994. Nun möchte ich die neuen
Geokoordinaten rausfinden, wenn ich diesen Punkt um 20 Meter in Richtung 70°
(also etwa Ostnordost) verschiebe. Ich habe es mit Tangens, Pythagoras und
binomischer Formel versucht, habe aber mittlerweile das Gefühl, dass ich
mich etwas verrannt habe. Bis zur Berücksichtigung der
Minuten/Sekunden-Umrechnung und der breitengradabhàngigen
Làngengradentfernungen bin ich gar nicht erst gekommen.
Ist jemand so nett und kann mir die korrekte Formel dafür nennen?

Viele Grüße
Marc
 

Lesen sie die antworten

#1 Ralf Goertz
11/02/2010 - 13:57 | Warnen spam
Marc Waesche wrote:

Hallo Leute!

Ich habe es mir einfacher vorgestellt, aber jetzt habe ich doch
beschlossen, lieber einen News-Client zu installieren und in dieser
Newsgroup um Hilfe zu bitten. :-)

Zu meinem Problem:
Ich habe z.B. die Geokoordinaten 51.37662,7.37994. Nun möchte ich die
neuen Geokoordinaten rausfinden, wenn ich diesen Punkt um 20 Meter in
Richtung 70° (also etwa Ostnordost) verschiebe. Ich habe es mit
Tangens, Pythagoras und binomischer Formel versucht, habe aber
mittlerweile das Gefühl, dass ich mich etwas verrannt habe. Bis zur
Berücksichtigung der Minuten/Sekunden-Umrechnung und der
breitengradabhàngigen Làngengradentfernungen bin ich gar nicht erst
gekommen. Ist jemand so nett und kann mir die korrekte Formel dafür
nennen?



Hier ist ein verkürzter Auszug aus einem meiner C++-Programme. Ist
hoffentlich selbsterklàrend. Es nimmt die Erde als Kugel an, was aber
bei 20 Meter kein Problem sein sollte.

b =latitude_alt*M_PI/180; //breite in radians
al=; //der Winkel (Norden=0)
c =; //die Distanz
a =acos(cos(b)*cos(c)+sin(b)*sin(c)*cos(al));
ga=asin(sin(c)*sin(al)/sin(a));
longitude_neu=longitude_alt+180*ga/M_PI;
latitude_neu =latitude_alt+(b-a)*180/M_PI;

Ähnliche fragen