Forum: PC-Programmierung GPS NMEA - Konvertierungsprobleme


von Cnewbie (Gast)


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

von STK500-Bsitzer (Gast)


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.

von Andreas L. (franklyn)


Lesenswert?

HI Cnewbie

Kann ich deinen Code haben? mit dem du aus deinem Modul den NMEA String 
rausbekommst?
Ich bekomm da ausser ein paar Hyroglyphen überhaupt nix raus.

Vielen Dank Andreas!
franklyn@franklyn.at

von Thomas B. (Firma: Druckerei Beste) (virtupic)


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

von Uhu U. (uhu)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.