GPS Daten darstellen

Gast #1384423
Lesenswert?

Hallo,

wo kann ich nachschauen, wie ich aus den aufgezeichneten GPS Daten eine 
Bewegungskarte erstellen kann. Mir gehts nicht darum, die Daten in 
Google oder ähnliches zu importieren, sondern diese so auszuwerten, dass 
diese auf eine Grafik übertragen werden können.

Danke!
#1384475
Lesenswert?

Die Koordinaten sind im NMEA-Format etwas komisch codiert.

Wenn du die Daten mit GPSBabel z.B. ins GPX-Format unwandeln läßt, dann 
hast du sie in der üblichen Fom.

Die folgend C#-Funktion wandelt die Stringdarstellung von NMEA in 
Dezimal-Grad um:
1
private string NmeaDegree2DecimalDegree(string Tok)
2
{
3
    char DecSep = ',';
4
    if (System.Globalization.CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator == ".")
5
        DecSep = '.';
6
    Tok = Tok.Replace('.', DecSep);
7
    int DecPos = Tok.IndexOf(DecSep);
8
    double Pos = System.Convert.ToDouble(Tok.Substring(0, DecPos - 2)) + 
9
        System.Convert.ToDouble(Tok.Substring(DecPos - 2)) / 60;
10
    return Math.Round(Pos, 4).ToString().Replace(',', '.');
11
}
#1384585
Lesenswert?

Nein nicht ganz. Auf dem Aequator wuerde es schon so passen, aber nicht 
in unseren Breiten ( ca. 50 Grad Nord).
In unseren Breiten sind die Abstaende der Laengengrade geringer als die 
der Breitengrade. (Die Breitengrade sind ueberall aequidistant, die 
Laengengrade laufen zu den Polen zusammen.)
Also sollte man die x-Werte mit dem Faktor cos(Breitengrad) 
multiplizieren.
#1385042
Lesenswert?

Blubb schrieb:
> Danke!
>
> Müssen die y-Werte auch entsprechend umgerechnet werden?

Nein.
Und im übrigen hängt es von der Karte ab, die du unter deine Daten legen 
willst, ob und welche Korrekturen du bei der Umrechnung von 
Breiten/Längen Graden in kartesiche Koordinaten anbringen musst. Du 
brauchst dieselben Umrechnungen, die auch bei der zugrundeliegenden 
Karte gemacht wurden. Kartografie ist nicht so einfach, wie sich 
Lieschen Müller das so vorstellt.
#1385177
Lesenswert?

Ich wuerde die Achsen beschriften.
Der Erdradius ist zwar nicht konstant (wird zu den Polen geringer), kann 
in unseren Breiten mit r=6378km verwendet werden.
Damit lassen sich die y-Werte schnell von Breitengrade in 
(Bogen-)Laengen umrechnen. Bei den x-werten muss der Faktor 
'cos(Breitengrad)' beruecksichtigt werden.
Bei den sin()/cos() muss man aufpassen, dass sie meist Bogenmasse 
verlangen, das GPS/NMEA-String aber Grad-Windel hat.
#1385811
Lesenswert?

Blubb schrieb:
> Hallo Jürgen,
>
> kannst du mir noch auf die Sprünge helfen, wie jetzt die y-Werte mit dem
> Radius konkret umgerechnet werden? X-Achse und Umrechnung Bogenmaß ist
> klar.

Denk dir die Erde von Pol zu Pol durchgeschnitten. Die Schnittfläche ist 
dann ein Kreis. Der Breitengrad ist ein Radiusvektor von einem Punkt am 
Radius zum Kreismittelpunkt, wobei der Breitengrad der Winkel zwischen 
Radiusvektor und der Horizontalen (dem Äquator) ist. Der Radiusvektor 
kann 360 Grad überstreichen. Dies entspricht am Umfang des Kreises einer 
Distanz von 2*r*PI ( r = 6378km)

wenn 360° einer Distanz am Umfang von 2*6378km entsprechen, wie gross 
ist dann die Distanz in Kilometer für 1°. Wie gross für 0.5°? etc.

Einfach mal auf dem Papier eine Kugel skizzieren und Breitenkreise bzw. 
Längenkreise einzeichnen und überlegen was denn die Winkelangaben 
bedeuten und wie sie angegeben werden. Dann wird vieles klarer.
#1386132
Lesenswert?

>wenn 360° einer Distanz am Umfang von 2*6378km entsprechen, wie gross
>ist dann ...
Du meinst wahrscheinlich 2*pi*6378km?

Etwas schwieriger sind die x-Werte.
Laeuft man am 50.Breitengrad um die Erde, dann ist der "Umfang" nicht 
mehr 40000km, sondern r*cos(50Gr)*2*pi.
r*cos(50Gr) ist der Abstand von der Erdoberflaeche am 50.Breitengrad zur 
Pol-Achse (lotrecht).

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