Abstand?

Allgemeine Fragen zu GPS und verwandten Themen

Moderator: Roland

florian

Beitrag von florian » 22.05.2004 - 08:35

Da hab ich doch gleich auch mal ne frage dazu.

ich bin dabei ein haendlerverzeichnis aufzubauen.
wie muss ich denn rechnen wenn 2 orte wirklich direkt auf dem gleichen breitengrad rechnen?

konnte ich hier net rauslesen, muss aber zu geben das ich das nur ueberflogen hab!

danke
florian

minix

Kurs berechnen / Schnittwinkel

Beitrag von minix » 13.10.2004 - 20:39

Hi Leute,

wie muss ich vorgehen, wenn ich zwei Koordinaten habe und von der einen (Ausganskoordinate) den Kurs zu der zweiten (Zielkoordinate) berechnen möchte.

Hierbei soll der Winkel des Großkreises im Schnittpunkt mit der Ausganskoordinate berechnet werden.

Kann mit jemand ne Formel dafür geben? - bin nicht so das Mathegenie und bei dem Kugelgeometriezeugs hörts bei mir auf. Benötige die Info allerdings für ein Nav System.

danke im Voraus

Gruß
minix

minix

hat sich erledig

Beitrag von minix » 13.10.2004 - 20:45

Sorry, hat sich erledingt.

Habe gerade einen Link bei einem anderen Beitrag gefunden der mich vollstens zufrieden stellt

Sorry für den unnötigen Post

MRehfeldt

Beitrag von MRehfeldt » 13.02.2006 - 12:49

Michael hat geschrieben:Hallo Michael,

wenn Du mit der von Ralf angegebenen Formel falsche Ergebnisse bekommst, hast Du sie nicht richtig angewandt.

Ich vermute mal, Du hast das ganze in Excel gerechnet und die Winkel als Grad eingesetzt. Richtig wäre aber, die Winkel als rad einzusetzen Umrechnung: rad = Grad / 180 * PI

Aus den Zahlen, die Du mir noch per Mail (unnötigerweise weil im Forum hätte gereicht, dafür ist es ja da) zugeschickt hast:

breite länge
MAX 50,82121 10,66189
MIN 50,821 10,66175

bekomme ich mit der Formel als Abstand heraus:
25,3 m
Wenn ich das ganze mit Mapsource rechne kommt raus:
25.4 m
Also ein vernachlässigbarer Unterschied.

Du darfst bei der Formal und Excel aber nicht vergessen am Schluss das Ergebnis auf Grad umzu rechnen: * 180 / PI da die Formel davon ausgeht, dass sie SIN, COS und ARCCOS Funktionen Grad akzeptieren, wie es bei einem normalen Taschenrechner der Fall ist.

Für solche kleinen Entfernungen müsstest Du aber garnicht so rechnen, da würde es auch reichen, Du tust so als wäre die Erde flach:
Abstand Breite [km] : Ba = (B2-B1)*40000/360
Abstand Länge [km] : La = cos ((B2+B1)/2))*40000/360 !!in Excel mit rad rechnen!!
Abstand [m] : A = Wurzel (Ba^2 + La^2) * 1000

Aber einfacher ist das auch nicht, hat halt weniger trigonometrische Funktionen drin.

Da kommt dann raus: 25.3 m, also das gleiche.

Noch ein Hinweis:
Es macht ja eigentlich keinen Sinn, wenn Du aus Deinen Daten einfach das Maximum der Breitengrade und das Maximum der Längengrade rausholst und damit den Abstand berechnest. Die beiden müssen ja nicht unbedingt zusammengehören. Wenn der Längengrad nicht stimmt, aber der Breitangrad ist perfekt und im anderen Fall umgekehrt, dann rechnset Du einen maximale Entfernung aus, die im schlimmsten Fall um den Faktor 1,4 schlechter ist, als sie wirklich ist.

Ausserdem ist einfach die max-Werte zu nehmen nicht realistisch. Du solltest schon irgendwie einen 95% oder wenn Du streng bist 99%-Wert nehmen, weil Sir sonst ein einzelner (1 Sekunde lang reicht) schlechter Wert z.B. bei einem Satellitenwechsel die ganze Messreihe ruiniert.
Eine Standardabweichung wäre auch nicht schlecht.

Gruss
Michael
Hallo,

leider muss ich auch noch auf diesem Thema rumreiten.
Ich habe mal mit den Werten:
breite länge
MAX 50,82121 10,66189
MIN 50,821 10,66175
und den Gleichungen aus dem Zitat, sowie der Gleichung von Ralf versucht den Abstand zu ermitteln. Bei Ralfs Gl. komme ich auf etwas über 26m, bei den Gln. aus dem Zitat auf über 109km...
Entweder ich hab voll 'n Brett vorm Kopf und seh meinen Fehler nicht oder
bei den Gln. passt irgend etwas nicht.

Hier meine Überlegung (C-Programm):

Code: Alles auswählen

std::cout<<"Wert B1 : ";
std::cin>>B1;
std::cout<<"Wert L1 : ";
std::cin>>L1;
std::cout<<"Wert B2 : ";
std::cin>>B2;
std::cout<<"Wert L2 : ";
std::cin>>L2;
    
A = 1852*60*acos(sin(B1) * sin(B2) + cos(B1) * cos(B2)*cos(L2-L1)); 
/*Wert in Metern = 26,8084*/

/*oder:*/

Ba = (B2-B1)*40000/360;
La = cos((L2+L1)/2*3.14/180)*40000/360;
A = sqrt(Ba*Ba + La*La)*1000; 
/*Wert in Metern = 109195, was dem tausendfachen des Wertes La entspricht...*/
MfG M

Benutzeravatar
Roland
Beiträge: 2055
Registriert: 18.02.2004 - 22:33
Wohnort: Wusterhausen(Dosse)

Beitrag von Roland » 13.02.2006 - 21:57

Hallo,

warum mische ich mich jetzt ein ?
Warum habe ich mich vorher nicht eingemischt ??

In beiden Formeln ist der Wurm:
La = cos ((B2+B1)/2))*40000/360
La = cos((L2+L1)/2*3.14/180)*40000/360
Da kann ich ja meinen untermischen:

La = cos((B1+B2)/2)*(L2-L1)*40000/360

Jetzt kann man noch diskutieren, ob im angesprochenen Sonderfall kleiner Abstände nicht cos B1 genügt.

Kühne Grüße Roland

Antworten