gps Datenaustauschsformat

Gast #1641476
Lesenswert?
• ▲
▼
Guten Mittag zusammen,

ich versuche derzeit einen kleinen, simplen GPS-Logger zu bauen. Wichtig 
wäre mir dabei, dass ich die daten direkt in einem Format auf die 
SD-Karte schreiben kann, das sich später direkt weiterverarbeiten lässt. 
(googleearth usw)

Ausgeguckt habe ich mir nun gpx und kmz ... beide wären halbwegs einfach 
umzusetzten ... nur ein Problem habe ich damit .. die latitude und 
longitude angabe muss bei beiden Formaten in Grad mit dezimalstellen 
angegeben werden.

Im NMEA Format werden die daten allerdings in Grad, Minuten, Sekunden 
ausgeben.

Daher die Frage, gibt es ein Format dass direkt mit diesen Daten 
gefüttert werden will? Dann würde ich mir die Dividiererei sparen ...

Vielen Dank schonmal.

Toni
Gast
Lesenswert?
• ▲
▼
oh öhm ja, hab ich jetzt erst so richtig registriert ;-). thx

Mein Problem wird damit leider nur nicht gerade einfacher ... dann wärs 
ne float division :/. ... direkter gpx ausgabe wird dann ja schon fast 
unmöglich :(

Toni
Gast
Lesenswert?
• ▲
▼
Hi

>Mein Problem wird damit leider nur nicht gerade einfacher ... dann wärs
>ne float division :/. ... direkter gpx ausgabe wird dann ja schon fast
>unmöglich :(

Division? Wohl eher Multiplikation (Nachkommastellen x 60). So etwas 
mache ich in Assembler.

MfG Spess
Lesenswert?
• ▲
▼
Waldgichtel schrieb:
> oh öhm ja, hab ich jetzt erst so richtig registriert ;-). thx
>
> Mein Problem wird damit leider nur nicht gerade einfacher ... dann wärs
> ne float division :/.

Na ja. float muss es nicht gerade sein
Beim Einlesen gleich mal die Grad am Dezimalpunkt von den Dezimalminuten 
trennen und dann getrennt weiterbehandeln
Gast
Lesenswert?
• ▲
▼
hm versteh ich nicht ganz, warum multiplikation mit 60?

Hier ma ein Beispieldatensatz:

$GPRMC,112443.213,A,4701.5450,N,00610.4986,E,000.0,309.8,190310,,,A*64

dann ist die Positionsangabe doch nun in dem format:

47° 01.5450 Minuten N
6° 10.4986 Minuten E

Das nun umgerechnet:

47 + (01,5450/60) N
= 47,02575 N

6 + (10,4986/60) E
= 6,174976667 E

Ok ich kann logischerweise mit 0,01666666 multiplizieren aber float 
bleibts trotzdem. Viel wär das ne Möglichkeit. Mit dem aufsplitten hab 
ich noch nicht ganz verstanden. Die ° rausziehen ist klar ... aber wie 
lässt sichs dann vereinfachen :/

Toni
Lesenswert?
• ▲
▼
Waldgichtel schrieb:

> dann ist die Positionsangabe doch nun in dem format:
>
> 47° 01.5450 Minuten N
> 6° 10.4986 Minuten E
>
> Das nun umgerechnet:
>
> 47 + (01,5450/60) N
> = 47,02575 N
>

Ich denke du willst Grad Minuten und Sekunden getrennt haben?

47 01.5450

47 Grad
01 Minute
5450 * 60 = 32700 = (Komma zurechtschieben) = 32,7 Sekunden


Edit:
nochmal nachgelesen.
Stimmt ja nicht. Du brauchst ja Grad alleine

> Ok ich kann logischerweise mit 0,01666666
Du kannst ja auch mit 16666 multiplizeren und das Komma danach 
zurechtschieben

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.