Forum: PC-Programmierung GPS koordinaten auf Karte anzeigen. WIE?


von Holger K. (holgerkraehe)


Lesenswert?

Hallo zusammen

Gibts es eine Quelle für kostenlose, frei verfügbares, Kartenmaterial?
Hintergrund ist, dass ich gerne die GPS Position auf einem 
Kartenausschnitt darstellen möchte.

Dies bringt mich sogleich zur zweiten Frage, wie sind solche Koordinaten 
üblicherweise bei GPS Geräten abgespeichert?

Wird die Wölbung der Erde mit eingerechnet oder wird die üblicherweise 
vernachlässigt, da die Berechnung schneller ist und die Genauigkeit 
genügt?

Würde gerne die Kartenbilder auf einer SD ablegen und je nach position 
die entsprechenden Karten laden und darstellen.

Ziemlich quick and dirty aber halt effektiv :)

Cool wäre natürlich eine Vektor basierte Karte, damit man unendlich 
zoomen könnte.

Danke schonmal.

: Verschoben durch User
von liggi (Gast)


Lesenswert?

Freies Kartenmaterial gibt es von openstreetmap. Wie man das am Besten 
in Vektorformat oder ähnliches bekommt, kannst du in deren Wiki 
nachsehen.
GPS-Module geben meist die Koordinaten per NEMA Protokoll aus.

von Philipp K. (philipp_k59)


Lesenswert?

Holger K. schrieb:
> Danke schonmal.

Ich habe das auch schonmal gemacht, leider ist da soo lang her das ich 
nicht mehr weiß wie.. es gibt ein Offline-Karten Downloader für Google 
der Dir das ganze in jedem Format, Größe und Maßstab zurechtschneidet.

Kurz gegoogelt.. Trekbuddy Atlas Creator, ich meine damit hab ich das 
gemacht.. da müsstest Du Dir das hinbasteln oder Dich an gängige 
Anzeigestandards halten.

EDIT: zb. im Trekbuddy wiki "raster_maps" 
https://www.trekbuddy.net/wiki/index.php?title=Howtos#Raster_maps

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

Holger K. schrieb:
> Gibts es eine Quelle für kostenlose, frei verfügbares, Kartenmaterial?

na klar, OSM.

Tja, da hast du die Qual der Wahl: entweder fertig gerenderte Kacheln 
dir herunterladen oder dir die Planet.osm herunterladen - aber Vorsicht, 
die .bz2 dazu ist derzeit zierliche 56 GB groß. Ist zwar alles XML, also 
herzlich aufgedunsen, aber immerhin... wir groß das entzippte Gebilde 
ist, will ich garnicht wissen.

Jedenfalls kannst du dir daraus deine eigene Vektorkarte machen - wenn 
du sowas kannst und willst.

Im anderen Falle begnügst du dich mit den fertigen Kacheln. Dazu hatte 
ich vor Jahren hier schon mal was gepostet, was auch auf nem µC machbar 
ist.
Siehe Beitrag "Landkarten auf dem Mikrocontroller".

W.S.

von npn (Gast)


Lesenswert?

liggi schrieb:
> GPS-Module geben meist die Koordinaten per NEMA Protokoll aus.

Das heisst "NMEA-0183".

von Thomas S. (doschi_)


Lesenswert?

Hier gab es vor langer Zeit mal ein Projekt dazu auf Basis STM32 & 
primer2 ( STM32F103VET6, Display ... ):
http://www.stm32circle.com/projects/project.php?id=75
Das Projekt kann dort heruntergeladen werden.

von pegel (Gast)


Lesenswert?

Wenn du keine Angst vor java hast

https://activityworkshop.net/software/gpsprune/download.html

Hat recht gute Bewertungen.

von pegel (Gast)


Lesenswert?


von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Holger.

Holger K. schrieb:

> Gibts es eine Quelle für kostenlose, frei verfügbares, Kartenmaterial?
> Hintergrund ist, dass ich gerne die GPS Position auf einem
> Kartenausschnitt darstellen möchte.

OpenStreetMap kann ich nur empfehlen.

Mit Netzanbindung ganz einfach:

Koordinaten Breitengrade (lat) und Längengrade (lon) in den Link 
einfügen.
"https://www.openstreetmap.de/karte.html?zoom=18&lat=51.08798&lon=7.12137&layers=B000TT";

Genaueres dazu steht hier: 
http://wiki.openstreetmap.org/wiki/DE:OSM-map_as_link#Statische_Karte_mit_Markern


> Dies bringt mich sogleich zur zweiten Frage, wie sind solche Koordinaten
> üblicherweise bei GPS Geräten abgespeichert?

Du meinst jetzt die Karte? Die Koordinaten sind ja nur zwei Zahlen.

Oft wird die Karte als Vektorgrafik angelegt, gepackt und gespeichert.
Und dann immer Ausschnittsweise entpackt und gerendert.

Darum hast Du auf kleinen Geräten entweder nur gebietsmäßig kleine 
Karten oder eben detailarme Karten.


> Wird die Wölbung der Erde mit eingerechnet oder wird die üblicherweise
> vernachlässigt, da die Berechnung schneller ist und die Genauigkeit
> genügt?

Hängt davon ab, ob für Deine Kartenbetrachtung der Fehler 
vernachlässigbar ist.

Im allgemeinen wird die Kugelgestalt der Erde durch eine "Kachelung" 
angenähert. Siehe "Gauß-Krüger-Koordinaten" 
https://de.wikipedia.org/wiki/Gau%C3%9F-Kr%C3%BCger-Koordinatensystem

Es gibt anders aufgebaute Kachelsysteme (z.B. das UTM-Gitter) mit 
anderen Vorzügen und Nachteilen, aber grundsätzlich sind die Prinzipien 
immer ähnlich.

Für die meisten Anwendungen kannst Du bis über den Daumen 80km davon 
ausgehen, ohne sphärische Trigonometrie auszukommen.


>
> Würde gerne die Kartenbilder auf einer SD ablegen und je nach position
> die entsprechenden Karten laden und darstellen.
>
> Ziemlich quick and dirty aber halt effektiv :)

Wenn Du das ohne Aufwand hinkriegen möchtes, wird es ärmlich. ;O)
Wenn Du auch noch mit ganz wenig Strom auskommen willst, nimm sowas wie 
einen Gecko oder ein etrex10. Das gibt im wesentlichen nur die 
Koordinaten (und Richtung ec.) aus, und die überträgst Du auf eine 
klassische Papierkarte.
Dafür muss man aber erstmal eine Papierkarte haben, und dann auch noch 
damit umgehen können. ;O)

Ausserdem unterschätze nicht den Stromverbrauch auch solcher einfachst 
GPS Geräte.

D.h. für echte Notfälle sollte man trozdem die Kenntnisse der VorGPS 
Zeit haben und anwenden können, damit man sich weiterhelfen kann, wenn 
die Batterien leer sind.

Ausserdem können Dir klassische Papierkarten ein besseres "Bauchgefühl" 
für die Gegend geben.....auf einem Bildschirm kannst Du zoomen, aber 
kein Bildschirm kann Dir einen Überblick wie eine komplett ausgebreitete 
Karte geben. Aber der Überblick kann wichtig zum einschätzen sein.


>
> Cool wäre natürlich eine Vektor basierte Karte, damit man unendlich
> zoomen könnte.

Für den Zweck gehen fast nur Vektor basierte Karten. Aber trozdem hat es 
keinen Sinn, weiter zu zoomen, wenn Du nur noch ein Objekt im Blickfeld 
hast. ;O)

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

von spess53 (Gast)


Lesenswert?

Hi

>Würde gerne die Kartenbilder auf einer SD ablegen und je nach position
>die entsprechenden Karten laden und darstellen.

Das hatte ich schon vor 12 Jahren vor:

Beitrag "Re: Zeigt her Eure Kunstwerke !"

>Freies Kartenmaterial gibt es von openstreetmap.

Wenn das immer noch so schlecht wie vor Jahren ist, kannst du das 
vergessen.
Noch Jahre nach dem obigen Thread habe ich lt. openstreetmap samt der 
ganzen (200 jährigen) Gasse mitten in der Pampa gewohnt.

MfG Spess

von pegel (Gast)


Lesenswert?

spess53 schrieb:
> Noch Jahre nach dem obigen Thread habe ich lt. openstreetmap samt der
> ganzen (200 jährigen) Gasse mitten in der Pampa gewohnt.

Darum heißt das ja openstreetmap.
Du hättest das korrigieren können. Man muß nicht immer warten bis andere 
was tun ;)

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Spess.

spess53 schrieb:

> Wenn das immer noch so schlecht wie vor Jahren ist, kannst du das
> vergessen.

Das hängt tatsächlich oft von den dortigen Bewohnern ab. ;O)

> Noch Jahre nach dem obigen Thread habe ich lt. openstreetmap samt der
> ganzen (200 jährigen) Gasse mitten in der Pampa gewohnt.

Aha? Und warum hast Du dann das Problem nicht selber gelöst? ;O)
Open Street Map ist ausdrücklich ein Projekt zum mitmachen!

Darum oben die Bemerkung mit den Bewohnern. Klar, gibt auch 
Durchreisende, die die Karte verbessern.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

von Sheeva P. (sheevaplug)


Lesenswert?

spess53 schrieb:
> Wenn das immer noch so schlecht wie vor Jahren ist,

Ist es nicht.

> Noch Jahre nach dem obigen Thread habe ich lt. openstreetmap samt der
> ganzen (200 jährigen) Gasse mitten in der Pampa gewohnt.

Tja, wie viele andere offene Projekte lebt auch OpenStreetMap vom 
Mitmachen. Also von Leuten, die ihre 200-jährige Gasse mit einem 
GPS-Tracker erfassen und die gewonnenen Kartendaten bei OSM einstellen, 
anstatt zu meckern, daß besagte Gasse noch nicht erfaßt ist. ;-)

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Nachtrag:

Bernd W. schrieb:

> OpenStreetMap kann ich nur empfehlen.
>
> Mit Netzanbindung ganz einfach:

Es gibt mittlerweile auch einen topografischen Ableger. Da aber weniger 
Leute topografische Karten nutzen, wird dort nicht so viel Rechenzeit 
investiert, und die Berechnung ist gleichzeitig aufwändiger.

Eine Aktualisierung der Strassenkarte erfolgt ca, wöchentlich, wärend Du 
bei der topografischen ca. einen Monat warten musst, bis Änderungen 
erscheinen.

https://opentopomap.org/#map=15/51.54840/6.86580

Wenn Du Dir den Link ansiehst, wirst Du sehen, wo Du ihn sinnvoll 
manipulieren kannst. Höchster Zoomlevel ist aber 17 oder so.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von Navigator (Gast)


Lesenswert?

Für alle die sich fundiert mit Satellitennavigation über den 
Amateurlevel ala wikipedia & Co. hinaus beschäftigen wollen ist es 
ratsam, zunächst einmal das GPS Kompendium von µblox zum Einstieg zu 
lesen.

https://www.u-blox.com/sites/default/files/products/documents/GPS-Compendium_Book_%28GPS-X-02007%29.pdf

Dann klappts auch mit der Kartendarstellung ...

von Rolf M. (rmagnus)


Lesenswert?

Holger K. schrieb:
> Hintergrund ist, dass ich gerne die GPS Position auf einem
> Kartenausschnitt darstellen möchte.
>
> Dies bringt mich sogleich zur zweiten Frage, wie sind solche Koordinaten
> üblicherweise bei GPS Geräten abgespeichert?
>
> Wird die Wölbung der Erde mit eingerechnet oder wird die üblicherweise
> vernachlässigt, da die Berechnung schneller ist und die Genauigkeit
> genügt?

Ja, "die Wölbung der Erde" wird eingerechnet. Mann nennt das 
Kartenprojektion (oder laut Wikipedia "Kartennetzentwurf" - siehe 
https://de.wikipedia.org/wiki/Kartennetzentwurf ).
Außerdem muss man berücksichtigen, dass die Erde keine exakte Kugel ist.
Man nutzt in der Regel ein vereinfachtes Modell, in dem die Form der 
Erde als Ellipsoid nachgebildet wird. Davon gibt es viele verschiedene, 
aber heute wird für Standardnutzung meist der von WGS84 eingesetzt.
https://de.wikipedia.org/wiki/Referenzellipsoid

Ich habe mich vor etlichen Jahren mal damit beschäftigt, um auf 
Segeltörns eingescannte Seekarten auf dem Rechner darzustellen und per 
GPS die Position dort einzuzeichnen und Routen definieren zu können. Ich 
hab den ganzen Karten- und Projektionskram aber damals nicht selbst 
gemacht, sondern dafür GDAL ( http://www.gdal.org/ ) verwendet.

von Holger K. (holgerkraehe)


Lesenswert?

cool

vielen Dank für eure Antworten.

Ich werde dann wohl vermutlich die Daten als Kacheln herunterladen und 
diese dann entsprechend laden müssen.

Das uBlox PDF werde ich mir durchlesen.

ebenso sieht gdal interessant aus. Wobei ich noch nicht ganz sicher bin, 
was diese library genau macht und kann.

von Navigator (Gast)


Lesenswert?

Kapitel 2.5 wird dann Dein Freund werden (müssen) ;)

von Rolf M. (rmagnus)


Lesenswert?

Holger K. schrieb:
> ebenso sieht gdal interessant aus. Wobei ich noch nicht ganz sicher bin,
> was diese library genau macht und kann.

Also bei mir hat es damals die Kartendateien eingelesen und mir 
Ausschnitte daraus passend skaliert als Pixeldaten zur Verfügung 
gestellt, so dass die die nur noch in mein Fenster malen musste. 
Außerdem waren Funktionen dabei, um zwischen Geo- und Pixelkoordinaten 
umzurechnen.

von Holger K. (holgerkraehe)


Lesenswert?

Diese Seite funktionioert bei mir leider nicht korrekt

http://gm2tb.awokenmind.de/

Funktioniert die bei jemandem?
Bei mir gibts im ordner set nur schwarze pngs mit einer grösse von 100 
Bytes

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Als Grundlage für eigene Basteleien ist für Menschen, die unter Windows 
mit der MFC programmieren, das hier vielleicht interessant:

http://www.naughter.com/osmctrl.html

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Navigator.

Navigator schrieb:
> Kapitel 2.5 wird dann Dein Freund werden (müssen) ;)

Schon, aber Anfänger sollte man auch nicht gleich mit einer 
Matrixschreibweise schockieren.
Mathematisch das gleiche lässt sich auch mit einer Schritt für Schritt 
Methode erreichen, auch wenn das für "Eingeweihte" unelegant aussehen 
mag.

Also für den TO: Don't panic! Das ganze ist lediglich eine 
Kurzschreibweise für eine Koordinaten Verschiebung und Streckung plus 
Spiegelung. Das kann auch mit den "normalen" Grundrechenarten erreicht 
werden.

Etwas aufpassen musst Du aber bei der Zählrichtung der Koordinaten.
Die meisten geografischen Systeme zählen den Hochwert von unten nach 
oben unde den Rechtswert von links nach rechts. Grafiksysteme am 
Bildschirm zählen sehr oft zwar die x-Koordinate auch von links nach 
rechts, aber dagegen die y-Koordinate von oben nach unten, weil sie den 
Nullpunkt oben in der linken Ecke haben. Das kann eine Falle sein.

Eine andere Falle, mit der ich mich mal weit weg geschossene habe, ist 
die Zählung der Winkel. Die meisten geografischen Systeme haben den 
Nullwert des Winkels im Norden und zählen dann im Uhrzeigersinn. Aber 
Mathematisch, insbesondere bei den üblichen Definitionen von Sinus und 
Cosinus, ist der Nullwert des Winkels auf der rechten x-Achse (also 
"Osten"), und die zählen dann entgegen dem Uhrzeigersinn.

Das es Unterschiedliche Winkelmaße, Grad ("Altgrad", rechter Winkel 
90°), Gon ("Neugrad", rechter Winkel 100 gon) und Bogenmaß (rechter 
Winkel 0,5 Pi) gibt, soltest Du im Hinterkopf haben. Wenn Du mit altem 
militärischen Gerät hantierst, gibt es noch "Strich", und diese sind 
unterschiedlich definiert, je nachdem von welchem Ort und aus welcher 
Zeit Dein Instrument stammt. Aber die Umrechnung ist immer mit dem 
Dreisatz möglich.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von Holger K. (holgerkraehe)


Lesenswert?

Bernd W. schrieb:
> Mit freundlichem Gruß: Bernd Wiebus alias dl1eic

Vielen Dank für deinen Beitrag.
Ich werde dies zeitnah versuchen.

von pegel (Gast)


Lesenswert?

Hast du dir GpsPrune angesehen?
Meiner Meinung nach alles was man braucht.

Karten laden/speichern
Import und Export aller gängigen GPS Daten und Formate
Video Audio Verwaltung zum Punkt
Berechnungen
Wetterbericht am Ort

usw.

von pegel (Gast)


Lesenswert?

Und für jede Spezialität noch dazu den java Quelltext.

von Holger K. (holgerkraehe)


Lesenswert?

pegel schrieb:
> Hast du dir GpsPrune angesehen?
> Meiner Meinung nach alles was man braucht.

Ich glaube das ist nicht dass, wonach ich suche.


Ich benötige ein Tool, welches mir Bilder von Karten erzeugt und eine 
Möglichkeit gibt, pixelgenau die GEO-Positionen innerhalb des Bildes zu 
bestimmen.

von pegel (Gast)


Lesenswert?

Alle Berechnungen findest du in den Quellen.
Ich denke das könnte schon helfen.

Ob allerdings der STM32 mit bescheidenem Speicher wie im anderen Beitrag 
dafür reicht?

Mit dem F7 Discovery hatte ich bei der Bilddarstellung das Gefühl das 
die Grenze in manchen Situationen schon erreicht ist.
Und bei dem wird das Display per FSMC angesteuert und nicht per SPI.

von Holger K. (holgerkraehe)


Lesenswert?

pegel schrieb:
> Und bei dem wird das Display per FSMC angesteuert und nicht per SPI.

Nun, die Karte das erste mal zu laden wird vermutlich einen sichtbaren 
Bildaufbau mitsich bringen.

Da ich jedoch nur zu fuss unterwegs bin, werden sich die folgenden 
aktualisierungen auf ein paar Pixel am Rand beschränken.

Dies dürfte dann vermutlich relativ fix gehen.

von pegel (Gast)


Lesenswert?

Holger K. schrieb:
> auf ein paar Pixel am Rand beschränken.

Musst aber trotzdem das Bild komplett neu aufbauen.

Ich empfehle einige youtube Videos zu deinem angepeilten Display für 
einen ersten Eindruck anzusehen. Besonders die Darstellung von Bildern.

von pegel (Gast)


Lesenswert?

Das meine ich

https://www.youtube.com/watch?v=vvj9UHVHc-M

und das ist schon parallel Ansteuerung!

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Pegel.

pegel schrieb:

> https://www.youtube.com/watch?v=vvj9UHVHc-M
>
> und das ist schon parallel Ansteuerung!

Für einen Fussgänger als Kartenaufbau mit Sicherheit ausreichend in der 
Schnelligkeit. Du bist nur zu verwöhnt. ;O)

Auch Radargeräte mit klassischen analogen Polarkoordinatenröhren in 
Flugzeugen hatten keinen schnelleren Bildrefresh.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

von Arc N. (arc)


Lesenswert?

pegel schrieb:
> Das meine ich
>
> https://www.youtube.com/watch?v=vvj9UHVHc-M
>
> und das ist schon parallel Ansteuerung!

Da passt was mit der Ansteuerung nicht.
Zum einen ist die min. Write Cycle Time = 30 ns ~ 33 MHz d.h. bei 
240x320x16 BPP (153600 Bytes pro Frame) käme man etwa auf 217 Frames pro 
Sekunde zum Display (vernachlässigbarer Overhead, da der IL die Adressen 
automatisch hochzählt).
Zum anderen könnte man, da der IL9488 345600 Bytes Speicher hat, bei 
240x320x16 BPP auch Double Buffering nutzen (Partial Area Command).

Edit: 
https://www.lpcware.com/system/files/ILI9488_Preliminary_DS_V090.pdf

: Bearbeitet durch User
von Holger K. (holgerkraehe)


Lesenswert?

Arc N. schrieb:
> 240x320x16 BPP (153600 Bytes pro Frame) käme man etwa auf 217 Frames pro
> Sekunde zum Display

Hmmm

Kann es sein, dass die Write Cycle Time = 30ns (wo findet man diese im 
Datenblatt fürs SPI?) die Zeit für den den SPI Clock angibt?

Wenn dem so ist, dann kann man ja nur ein Bit übertragen und nicht ein 
Byte.
Somit wäre die Rechnung dann:

240x320x16 = 1.2288 MBit und die Übertragung wäre dann maximal 33Mbit.
Somit 33Mbit/1.288 MBit = ca. 25 Frames/Sekunde was doch einiges besser 
wäre als das was im Video zu sehen ist.

Bei meinem Display hingegen habe ich 320*480 Pixel. Somit wären es 
320x480x16 = 2.4576Mbit = ca. 13 Frames/Sekunde. Also nicht flackerfrei 
aber für einen Fussgänger mehr als ausreichend.

von Arc N. (arc)


Lesenswert?

Holger K. schrieb:
> Arc N. schrieb:
>> 240x320x16 BPP (153600 Bytes pro Frame) käme man etwa auf 217 Frames pro
>> Sekunde zum Display
>
> Hmmm
>
> Kann es sein, dass die Write Cycle Time = 30ns (wo findet man diese im
> Datenblatt fürs SPI?) die Zeit für den den SPI Clock angibt?

Seite 327 und 328 3-Wire-SPI 66 ns, 4-Wire-SPI 50 ns.
Die 30 ns bezogen sich auf die "und das ist schon parallel Ansteuerung".

> Wenn dem so ist, dann kann man ja nur ein Bit übertragen und nicht ein
> Byte.
> Somit wäre die Rechnung dann:
> ...

Einfacher wäre es, wenn man wüsste welches Display und welcher 
Controller es werden soll bzw. was davon noch änderbar ist... aber dann 
wird's hier etwas zu OT

: Bearbeitet durch User
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.