GPS NMEA - Konvertierungsprobleme

Gast #614138
Lesenswert?

Guten Morgen,

mit der GPS Maus bekomme ich die Koordinaten geleifert. Diese Infos 
speicher ich zuerst in einen String. Nun möchte ich die Daten umwandeln.
Beispiel:

Der String Latitude beinhaltet diese Zahl 4124.8963. Nun soll die ersten 
beiden Ziffern in eine Integer Variable rein und die anderen in eine 
Daouble Variable. Wie kann ich dies mit C realisieren?
Was gibt mir dies an 24.8963?

>>Latitude    4124.8963,  N   41d 24.8963' N or 41d 24' 54" N
>>Longitude   08151.6838, W   81d 51.6838' W or 81d 51' 41" W
Gast #614149
Lesenswert?

>Was gibt mir dies an 24.8963?

Steht da doch: 24.8963 °Minuten.
Die Nachkommastellen geben die °Sekunden an: 0,8963*60 = 53,778

Den ganzen String kannst du dann so auseinanderklabüstern:
String = "4124.8693" (+ "\0")

Grad = (String[0]-'0')*10 + (String[1]-'0');
Minuten = (String[2]-'0')*10 + (String[3]-'0');

Sekunden musst du dir selber überlegen...

Kann aber sein, dass sich die Stringbehandlung noch etwas komplizierter 
gestaltet. Mit Arrays geht das so.
(Firma: Druckerei Beste) #878596
Lesenswert?

> Steht da doch: 24.8963 °Minuten.
> Die Nachkommastellen geben die °Sekunden an: 0,8963*60 = 53,778

Sicher? Bei mir kommen da Dezimalwerte raus. Ach, das meinst du ja 
anscheinend auch. Deine Formulierung hat mich etwas durcheinander 
gebracht.

Wenn's um Brechenungen geht, dann bleibt man besser dezimal. Minuten und 
Sekunden höchstens zur Entfernungsmessung in Seemeilen (1 nm = 1° lat) 
oder wenn's auf Karten so angegeben ist.

virtuPIC
/ggadgets for tools & toys
#878956
Lesenswert?

Thomas Bremer wrote:
> Sicher? Bei mir kommen da Dezimalwerte raus. Ach, das meinst du ja
> anscheinend auch. Deine Formulierung hat mich etwas durcheinander
> gebracht.

Das sieht nur wie Dezimal aus, ist es aber nicht, was du leicht 
feststellen kannst, indem du mal solche "Dezimalwerte" nimmst, deren 
Ursprungsort du kenst, und mal auf einer Karte diese Koordinate 
aufsuchst.

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