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!
Ein Koordinatensystem genuegt. Dann eine Koorinatentransformation und einzeichnen. Wo ist das Problem ?
Ich habe zu dem Zweck die NMEA-Daten in das Overlay-Format der TOP25-Meßtischblatt-CD umgewandelt. Damit kann man den Track dann ins Meßtischblatt einbelenden.
Ich finde keinen Ansatzpunkt, wie man die Koordinaten transformiert und wie die Höhe mit den Breiten- und Längsgraden zusammenhängt.
Die Koordinatentransformation ist im Wesentlichen eine Multiplikation. Must vielleicht etwas probieren wenn die Grundlagen fehlen.
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 | }
|
Danach kann ich die Daten ganz normal in einem passenden Koordinatensystem einzeichnen? Sprich der Längengrad entsprich der X-Achse, die Breite der Y-Achse? Danke!
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.
In hinreichend kleinem Massstab kann das Koordinatensystem hierzulande als rechtwinklig angesehen werden.
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.
Hallo, es soll keine konkrete Karte drunter gelegt werden. Die aufgezeichnete Strecke soll einfach in einer Grafik als eine Menge von Punkten abgebildet werden. Grüße Alex
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.
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. Danke Alex
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.
>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).
Hallo Jürgen, na ich brauche die Darstellung nur für unsere Breitengrade :)
Um einen Track in einer kleinen Umgebung in Deutschland darzustellen, muß man wirklich keine Klimmzüge machen - die fallen sowieso der Rundung auf Pixel zum Opfer...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.