AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi TSVOGISImage GPS Position in Karte anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

TSVOGISImage GPS Position in Karte anzeigen

Ein Thema von wb32 · begonnen am 16. Jan 2008 · letzter Beitrag vom 24. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#1

TSVOGISImage GPS Position in Karte anzeigen

  Alt 16. Jan 2008, 00:27
Hallo alle zusammen und schonmal danke für Eure Hilfe...

Ich sitze an einem Schulprojekt, es geht um folgende Aufgabe...

Eine Software schreiben die anhand eines GPS-Empfängers die aktuelle Position auf einer Karte anzeigt. Eine passende GPS-Maus habe ich, das Delphi-Programm um übern Com-Port die Koordinaten aus den empfangenen Daten auszulesen habe ich auch fertig.

Soweit ich bisher erfahren konnte, werden die Karten z.B. als *.shp Dateien genutzt, scheinbar gibt es da aber noch wesentlich mehr Formate.

Aktuell habe ich nur eine Kompo gefunden die scheinbar genau dafür gedacht ist, TSVOGISImage

auf der seite suchen nach Shape Viewer Objects GIS v.2
http://www.torry.net/pages.php?id=625

Direkter Link:
http://www.torry.net/vcl/misc/gis/svoinstall.exe

Ist kostenlos und sehr einfach zu installen... Aber dann gehts los, ich sehe da kein bischen durch wie man in diese Kompo eine Karte lädt und die aktuelle Position auf dieser anzeigen lässt...

Wer weiß Rat?
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#2

Re: TSVOGISImage GPS Position in Karte anzeigen

  Alt 16. Jan 2008, 01:47
ok, freies kartenmaterial habe ich schonmal gefunden... nur wie kriege ich das in mein programm und wie zentriert man das dann????

http://www.openstreetmap.org/?lat=52...13&layers=B0FT
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#3

Re: TSVOGISImage GPS Position in Karte anzeigen

  Alt 16. Jan 2008, 13:34
Weiß hier niemand wie ich meine aktuelle Position (GPS) in Delphi auf einer Karte darstellen kann?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: TSVOGISImage GPS Position in Karte anzeigen

  Alt 16. Jan 2008, 13:36
Wenn bisher keiner die von dir verwendete Komponente genutzt hat: Nein

(Ausserdem ist es unfair anderen Fragestellern gegenüber sein Thema ständig zu pushen)

Edit: Da ist eine Demo bei und eine Hilfe. Da musst du dich mal durchackern. (Wobei ich schon einen fehler aufgedeckt habe, aber so ist das hin udn wieder bei kostenloser Software)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
ppc2008

Registriert seit: 16. Jan 2008
Ort: Niedersachsen
10 Beiträge
 
#5

Re: TSVOGISImage GPS Position in Karte anzeigen

  Alt 16. Jan 2008, 15:19
Hallo,
hier eine Möglichkeit, wie es einige schon verfügbare GPS Programme machen, die mit eigenem Kartenmaterial gefüttert werden können.
1. Man braucht die Karte in einem Format (PDF,JPG,PNG, ...)
2. Man muß die Auflösung ermitteln (in Pixeln)
3. Man muß von der Karte 2 möglichst weit voneinander entfernte Punkte möglichst sehr genau kennen
also Beispielsweise eine Kreuzung oben Links und unten Rechts (als GPS Koordinaten)
Damit Kalibriert man die Karte.
Damit kann man anhand der GPS Koordinaten die echten Entfernungen berechnen und somit "X-Scale und Y-Scale"
Der Rest sollte ja nicht zu schwer sein.
Mit den Punkten muß man nun mit einem Viewer nun den Kartenausschnitt anzeigen.
z.B. mal hier nachsehen: http://213.157.12.14/ da sollte irgendwo auch eine Anleitung stehen.
Am Besten mal durchlesen und genauso (oder besser) machen.
So nun viel Spaß beim Coden.

Mich würde mal der Source für das Ansprechen der RS232 interessieren. Wie es in Turbo Pascal funktioniert, weiß ich. In Delphi habe ich das aber noch nicht gemacht. Vielleicht als "PN" schicken. Wäre nett.
Viele Grüße
Herbert
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#6

Re: TSVOGISImage GPS Position in Karte anzeigen

  Alt 16. Jan 2008, 16:00
Super das ist doch mal eine antwort

für den empfang der daten des usb GPS Empfängers nutze ich eine Komponente aus AsyncPRO => TapdComPort

http://sourceforge.net/project/showf...group_id=71007

oder die hier => http://sourceforge.net/projects/comport/

zieh die mal auf die form der rest ist eingentlich ganz einfach, wenn du hilfe brauchst melden

1. Man braucht die Karte in einem Format (PDF,JPG,PNG, ...)
=> Klar und verständlich, sollte man ja diese hier nutzen können ich brauche lediglich eine karte von berlin ist eine regionale sache
http://www.openstreetmap.org/?lat=52...13&layers=B0FT

2. Man muß die Auflösung ermitteln (in Pixeln)
=> auch kein Problem, sehe ich ja einfach in den Angaben im Explorer

3. Man muß von der Karte 2 möglichst weit voneinander entfernte Punkte möglichst sehr genau kennen, also Beispielsweise eine Kreuzung oben Links und unten Rechts (als GPS Koordinaten) damit Kalibriert man die Karte.
=> Könnte man über Google Earth 2 Referenzpunkte suchen und diese verwenden, sollte korrekt sein ansonsten fahr ich auch hin und mess das per gps aus

Damit kann man anhand der GPS Koordinaten die echten Entfernungen berechnen und somit "X-Scale und Y-Scale"
Das habe ich jetzt noch nicht so richtig verstanden, kannst du mir das genauer erläutern bitte?
  Mit Zitat antworten Zitat
ppc2008

Registriert seit: 16. Jan 2008
Ort: Niedersachsen
10 Beiträge
 
#7

Re: TSVOGISImage GPS Position in Karte anzeigen

  Alt 16. Jan 2008, 16:39
"X-Scale und Y-Scale" ist natürlich noch etwas Gehirnschmalz:

Nehmen wir mal als Beispiel ein kleines Fenster 200 Breit(x) 300 Hoch(y) und unten Links wäre 0,0. Dein GPS Standort möchtest Du ja wohl (verschieben lassen wir erst mal weg) in der Mitte haben also bei x=100,y=150.

Du berechnest also erst mal wo dieser Punkt innerhalb Deiner Karte liegt. Dieser Punkt liegt dann bei 100,150 auf dem Bildschirm (wenn man zentriert).

So weit alles klar oder? (Zoom lassen wir auch erst mal weg - jeder freut sich ja über ein "Hello World" bevor es schwierig wird.)

Mal angenommen Dein GPS Standort hast Du in der Karte ermittelt bei x=2000,y=3000.

Also mußt Du als Ausschnitt darstellen den Bereich Links unten x=2000-100,y=3000-150 bis Rechts oben x=2000+100,y=3000+150.

Je nach Auflösung der eingescannten Karte (oder was auch immer) siehst Du jetzt 1 Haus oder 1 Dorf oder .... - halt je nach Auflösung.

Die +/- 1 Pixel Abweichung vom echten Mittelpunkt da einzubauen überlasse ich Dir mal. Das kann kommen, wenn es bis dahin funktioniert.

Und für ZOOM muß man da noch jetzt halt noch eine Scalierung einbauen. Wenn man mehr Umland haben möchte, zeigt man halt den Ausschnitt Links unten x=2000-(100*xzoom),y=3000-(150*yzoom) bis Rechts oben x=2000+(100*xzoom),y=3000+(150*yzoom) ein. Normalerweise sind xzoom und yzoom identisch.

Wie UNIT´s JPG/PNG/PDF skalieren keine Ahnung - da gibt es bestimmt irgendwo was fertiges.

So und PAN (also verschieben) muß man dann nur den Mittelpunkt verschieben. Aber das sollte jetzt nicht mehr so schwer sein.

Ich hoffe, ich habe mich jetzt nicht vertan. Wenns funktioniert, würden sich alle hier sicher mal über einen Screenshot freuen (ich jedenfalls). Ich habs noch nicht programmiert - ist Theorie - wenn nicht so müßte es aber so ähnlich vom Prinzip her funktionieren.

Viel Erfolg beim Coden!
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#8

Re: TSVOGISImage GPS Position in Karte anzeigen

  Alt 16. Jan 2008, 16:57
genau so stelle ich mir das auch vor

aaabbberr... jetzt hab ich entweder ne blockade oder ich bin doof

ich weise 0,0 pixel ecke oben links meiner karte mit hile von google earth einer geokoordinate zu, das ist klar...

nur wie rechne ich jetzt andere geokoordinaten in pixel um damit ich weiß welchen teil meiner karte ich anzeigen muss ??

müsste ich nicht dazu 2 referenzpunkte haben???

oder ich etwas nicht verstanden
  Mit Zitat antworten Zitat
ppc2008

Registriert seit: 16. Jan 2008
Ort: Niedersachsen
10 Beiträge
 
#9

Re: TSVOGISImage GPS Position in Karte anzeigen

  Alt 16. Jan 2008, 18:49
Ja, richtig. Es werden 2 Referenzpunkte gebraucht. Ich schrieb das unter #5 schon. Karte kalibrieren kann man das auch nennen.
Am Besten mal auf 1 DINA4 Seite mal ne Karte ausdrucken.
1) Koordinaten der Ecken in Pixel mal auf die Kartenecken schreiben.
2) Dann irgendwo 2 Kreuzungen bekommen dann GPS Koordinaten. Dazu auch die Pixel Koordinaten aufschreiben (einfach mal die 2 Punkte einzeichnen).
Bis dahin ist ja nur Karte kalibrieren.
Bis hier ist auch nicht festgestellt, wieviel Pixel auf der Karte wieviel Meter sind. Das ist noch alles ohne Maßstab!

Wenn Du alles fertig hast, kannst Du ja einfach aus den 2 Punkten den Abstand X1,Y1 in Pixeln und den Abstand X2,Y2 aus den GPS Koodinaten errechnen.

Weg 1: Damit kannst Du dann z.B. am Rand unten den Maßstab anzeigen (Bsp. 10 Pixel = 10m) oder so.
Dann ist halt bei der einen Karte 300 Pixel = 250m bei einer anderen Karte 300 Pixel = 330m. Das steht ja dann im Maßstabsbalken/-linie.

Der 2. Weg einen festen Maßstab vorzugeben bei der Anzeige ist natürlich viel schwerer. Also ich meine 300 Pixel = 300m und das egal, welche Auflösung die Karte hat.
Ich würd erst mal die einfache Version coden. Wie ich hier beschrieben habe. Dabei kommt dann sicher die eine / andere Idee, wie man das machen kann.

Jetzt noch ein Bildschirmfenster ausschneiden (kleines Notizblat oder Hafti). Da auch die Koorinaten in die Ecken und die Mitte schreiben. Das ist Dein Bildschrimfenster. In die Mitte machst Du ein kleines Loch. Das ist das "Auto" = 150/100.

Die Karte unter dem Notizblatt schiebst Du nun herum, denn die Daten ändern sich ja, während der Notizzettel genau an der gleichen Stelle bleibt.

Die Maus gibt Dir die GPS Daten durch das Loch ... (nicht andersherum).

Wenn es heute noch nicht klick macht. Mal ne Nacht darüber schlafen. Wichtig: Es bewegt sich die Karte - nicht der Zettel.

Schönen Abend noch!

  Mit Zitat antworten Zitat
ppc2008

Registriert seit: 16. Jan 2008
Ort: Niedersachsen
10 Beiträge
 
#10

Re: TSVOGISImage GPS Position in Karte anzeigen

  Alt 16. Jan 2008, 20:31
Die Frage mit dem JPG hat sich vielleicht hier schon gelöst:
http://www.delphipraxis.net/internal...t.php?t=122786

Ich hatte dann eben beim Autofahren noch eine Idee: Ich habe ja schon mal eine Karte für ein GPS kalibriert.
Die Software hat das so gemacht, das sie zur der Bilddatei (z.B. BERLIN.JPG) auch eine Beschreibungsdatei hatte (z.B. BERLIN.PIX). In der Datei steht Teil 1 = Kalibrierung drin. Da ich keine Lust habe, das Stundenlag zu suchen - was kann da rein? Alles was statisch zur Karte ist:

Also Bild einlesen
(in Pixeln)
X_MIN, Y_MIN (sagen wir mal meist ist das 0,0) -> Datei
X_MAX, Y_MAX -> Datei
ABS aus X_MIN, X_MAX = SIZE_X -> Datei
ABS aus Y_MIN, Y_MAX = SIZE_Y -> Datei
Wenn man nun das Bild darstellt in einem Fenster kann man über den Mausklick die X,Y des Fensters von Punkt1 bekommen.
Das muß man nun auf das reale Bild umrechnen (Dreisatz).
Diesen Punkt würd ich auch mal in die Dateischreiben P1X, P1Y
Dann könntest Du ein Fenster aufpoppen lassen und gibst die GPS Koordinaten (GPS1B, GPS1L) ein -> Datei
dto. mit Punkt2. P2X,P2Y, GPS2B, GPS2L (B=Breiten,L=Länge) -> Datei

Aus ABS(GPS1B,GPS2B) kannst Du die Differenz der Breitengrade ermitteln -> Datei
dto. für die Länge -> Datei
dto. für die ABS(P1X,P2X) und ABS(P1Y,P2Y) -> Datei

Über Dreisatz bekommst Du jetzt Pixel/Längengrad, Pixel/Breitengrad -> Datei
Damit kannst Du auch
X_MIN_GPS, Y_MIN_GPS -> Datei
X_MAX_GPS, Y_MAX_GPS -> Datei
ausrechnen. Also die Ecken - auch wenn die mitten in einem See liegen.

Das mußte ich alles per Hand machen und ich hab es einmal gemacht. Du kannst das gleich besser machen (s.o.).

Dann kannst Du noch ein Text eingeben, wo die Karte mit Beschriftet wird
Text1="Berlin 2008"
Close Datei.
1 x für jede Karte - die Daten ändern sich nicht - außer man bekommt eine neue Karte.
Damit ist das Kalibrieren fertig.

Was in der Datei steht, kann man ja auch noch erweitern, vielleicht macht ja die dpi Zahl noch Sinn. Wirst Du ja sehen.

Diese Daten kannst Du dann wie eine LOG Datei mal mit goo earth oder so vergleichen.
----------------------------
Bei jedem Programmstart liest Du aus der Datei dann nur noch die Eckpunkte bzw. alles was Du brauchst.
und Teil2 überlasse ich nun Dir oder Anderen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz