• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

interaktive Karten - technischer Hintergrund?

Chups

Geonewbie
Hallo!

vorab: Ich hab mich in diesem Forum nicht registriert, weil ich nur folgende Frage stellen wollte, ich bin auch wirklich GeocacherIn. :wink:

Da ich mich auch für Programmierung (auch Webprogrammierung) interessiere, brennt mir nun schon seit ein paar Tagen die Frage auf der Zunge, wie die interaktiven Karten auf gc.de funktionieren.

Daß ich keine detaillierten Erklärungen erwarten kann ist mir klar. Mir gehts daher hauptsächlich darum:

- gibts fertige imagemap-scripte, die dafür verwendet und angepasst werden können
- oder ist der gesamte Code selbst programmiert?

und zu den Daten:

Werden sämtliche Daten (von deutschen Caches) von gc.com in eine eigene Datenbank transferiert, und wird dann nach jedem Update automatisch ein neuer Code für die Map generiert (damit die neuen Caches auch angezeigt werden)?

Oder denk ich in eine komplett falsche Richtung, und es funktioniert alles ganz anders? :)

Also, es wäre nett, wenn mir hier jemand, der über das nötige Hintergrundwissen verfügt, das Ganze zumindest oberflächlich ein wenig näher bringen könnte.

thx,
Chups
 

Grampa65

Geowizard
@ GeoFaex: Sehr hilfreich. :roll:

@ Chups: Mit JavaScript. Schau Dir mal den Sourcecode des Frame an,
in dem die interaktive Karte steckt:



Offensichtlich ist die Imagemap nicht komplett von Hand
programmiert worden.

Schreib doch einfach mal den Owner der Seite an...

-Grampa
 

GeoFaex

Geowizard
Grampa65 schrieb:
@ GeoFaex: Sehr hilfreich. :roll:
@ Chups: ...... Schreib doch einfach mal den Owner der Seite an...
Der Link führt doch auch zu ner Liste aller beteiligten und zu weiteren Threads um GC.de.....

Da steht dann z.B.
Momentan läuft es so, daß ein Perl-Spider die db-Files (die aus http://home.debitel.net/user/geocaching/data/ ) taeglich aktualisiert. Die Daten in diesen Files werden dann von einem anderen Skript benutzt, um die Karten zu bauen (jeweils *.gif und *.html pro Karte).
Und darum gings doch ungefähr.... :D :wink:
 
OP
C

Chups

Geonewbie
@GeoFaex

Wenn ich momentan nicht soviel um die Ohren hätte (vorallem privat), dann würde ein Mitmachen sogar eventuell in Frage kommen. So aber würd ich das einfach nicht schaffen. :(

Danke erstmal für die Antworten, ich habe nun nach 2-tägiger Suche folgendes herausgefunden:

a) wie aus diesem Forum entnommen, werden die Daten also mittels Perl-Spider abgefragt

b) irgendein Script erzeugt eine Imagemap mit diesen Daten

Soweit so gut. Wie ein Imagemap aussieht weiß ich, also ist mir auch ungefähr klar wie dieses Script aussehen muß.

Mein großes Problem, an dem ich jetzt schon die 2 Tage knabbere, ist nun aber folgendes:

Wie projiziert man die GPS-Koordinaten eines Punktes auf eine 2-dimensionale Karte?
Ich komm einfach nicht drauf. :(

Wär toll, wenn mir das wer näherbringen könnte, nachdem ich jetzt schon 2 Tage herumprobiert hab und einfach zu keinem brauchbaren Ergebnis komme, interessierts mich mittlerweile wirklich schon brennend. :)
 

-tiger-

Geowizard
Chups schrieb:
Wie projiziert man die GPS-Koordinaten eines Punktes auf eine 2-dimensionale Karte?
Ich komm einfach nicht drauf. :(

Die einfache aber ungenaue Methode: Such dir die Eckpunkte deiner Karte als Geokoordinaten raus. Die Pixelkoordinaten der Karte ergeben sich aus der Größe der Bilddatei. Der Rest ist ein einfacher Dreisatz. Der Nachteil ist, daß die Methode nur an den Ecken genau stimmt. Je größer die Karte, desto mehr Verschiebungen gibts.

Die genaue Methode: Verwende die Projektionsfunktionen aus PROJ.4, damit kannst du problemlos zwischen relativ beliebigen Koordinantensystemen konvertieren.

Tiger
 
OP
C

Chups

Geonewbie
-Tiger- schrieb:
Die einfache aber ungenaue Methode: Such dir die Eckpunkte deiner Karte als Geokoordinaten raus. Die Pixelkoordinaten der Karte ergeben sich aus der Größe der Bilddatei. Der Rest ist ein einfacher Dreisatz. Der Nachteil ist, daß die Methode nur an den Ecken genau stimmt. Je größer die Karte, desto mehr Verschiebungen gibts.

Genau an solchen Methoden tüftle ich seit 2 Tagen. Habs mit gps-koordinaten probiert, aber auch mit UTM-Koordinaten (werden auf geocaching.com auch angegeben), da ich gehofft hatte mit denen wirds genauer, weil dieses Koordinatensystem ja soweit ich informiert bin genau dafür gemacht wurde, um die Erde halbwegs genau auf eine 2-dimensionale Fläche projizieren zu können.
Mit den UTM-Koordinaten komm ich zwar näher an ein richtiges Ergebnis ran, aber irgendwas stimmt trotzdem nicht. Je weiter nördlich zum Beispiel die Koordinaten sind, desto fälscher wird meine y-Pixel-Koordinate. Entweder ich mach was falsch (was ich mir aber mittlerweile nicht mehr vorstellen kann, da ich alles bestimmt schon 100 mal durchdacht habe), oder es geht mit dieser Methode einfach nicht genau genug.

Die restlichen Tips bzw. Links werd ich mir jetzt mal anschauen, danke!
 

mamapapakind

Geocacher
Hallo Chups,

ich kann Dir zwar nicht im code beschreiben, wie man das macht, kann dir aber eventuell theoretisch weiterhelfen. Ich habe bei einem Software-Hersteller für geographische Informationssysteme (GIS) gearbeitet. Mit diesen Programmen werden Karteninformationen mit Datenbanken zusammengebracht, sodass man raumbezogen analysieren kann. Voraussetzung für das Georeferenzieren (so heißt der Vorgang, ein Objekt auf eine Karte zu bringen), ist, dass die Karte auch georeferenziert ist. Somit muss jeder Pixel einer Rasterkarte bzw. jeder Stützpunkt einer Vektorkarte einen Raumbezug oder X/Y Wert haben. Digitale oder analoge Kartenwerke besitzen eine vordefiniertes Koordinatensystem oder in der Kartographie Projektion jenannt, die mathematisch die drei-dimensionale Erde zweidimensional abbilden können. Dies sind zum Beispiel Gauß-Krüger oder WGS 84. Spezielle Computerprogramme wie CAD-Systeme oder esri-, MapInfo-Produkte können diese Projektionen verwalten und man kann anhand von i.d.R. vier Eckpunkten eine nicht georeferenzierte z.B. tiff-Karte an den richtigen Ort im Koordinatensystem platzieren. Wenn jetzt ein Punkt auf diese Karte platziert werden müssen, muss man dem Programm nur sagen, welche X/Y Geokoordinaten, z.B. N 49° 19.337 E 008° 07.359, das Objekt hat, und es wird richtig auf die Karte platziert.

Per hand kann man natürlich auch, sofern verhanden, die Gradzahlen oder Koordinatenwerte am Kartenrand ablesen und die Punkte eintragen.

Ich hoffe ich konnte dir helfen

Gruß
Carmen
 
OP
C

Chups

Geonewbie
Also die ersten links helfen mir glaub ich insofern nicht wirklich weiter, als daß das eigene Programme sind, die z.B. meine aktuelle gps-position auf einer Karte darstellen können etc.
Wenn ich nun aber meine eigene Karte habe, und dazu ein Imagemap erstellen will, wofür ich allerdings irgendwie gps-Koordinaten in Pixelkoordinaten (bezogen auf diese Karte) umwandeln muß, dann helfen mir da fertige Programme nicht, oder seh ich da irgendwas falsch? :(

@Tiger
Wie genau meinst du die "Projektionsfunktionen aus PROJ.4" verwenden? Kann ich da irgendwie in den Code des Programmes schauen und dort das wesentliche rauskopieren, oder meinst du was anderes?

Verwendet geocaching.de denn irgendsoein Programm für die Karten?

Ich glaub ich bin immer verwirrter. :oops:
 

-tiger-

Geowizard
PROJ.4 ist eine Library mit den nötigen Funktionen für genau die Projektionen, die mamapapakind beschreibt. Die wichtigsten Koordinatensysteme sind nach der Standartisierung der EPSG bereits hinterlegt, eigene Systeme können ggf. definiert werden. PROJ.4 bietet Schnittstellen zu verschiedenen Programmiersprachen. Code kopieren ist nicht nötig, man kann die Funktionen in das eigene Programm einbinden. Eines der genialsten (freien) GIS Systeme, GRASS5, verwendet z.b. PROJ.4 für diese Aufgaben.

Link zur Software: http://proj.maptools.org/

Wie geocaching.de das macht, kann ich nicht sagen, aber auf http://geocaching.schwarzwald.de arbeite ich mit dem UMN Mapserver, der wiederum besagte PROJ.4 Library für die Koordinatentransformation verwendet.

Tiger
 

mamapapakind

Geocacher
Chups schrieb:
Also die ersten links helfen mir glaub ich insofern nicht wirklich weiter, als daß das eigene Programme sind, die z.B. meine aktuelle gps-position auf einer Karte darstellen können etc.
Wenn ich nun aber meine eigene Karte habe, und dazu ein Imagemap erstellen will, wofür ich allerdings irgendwie gps-Koordinaten in Pixelkoordinaten (bezogen auf diese Karte) umwandeln muß, dann helfen mir da fertige Programme nicht, oder seh ich da irgendwas falsch? :(

doch, diese (GIS)Programme können auch selbstgescannte Karten oder Karten externer Lieferanten verarbeiten. Voraussetzung ist, dass diese Programme die Formate der digitalen Karten auch lesen können. Bilddateien wie tiff, bmp usw sind i.d.R. selbstverständlich, programmabhängig sind Formate schon georeferenzierter digitaler Karten wie geo-tiff, e00, tab usw. Bei Bilddateien musst du dann wie oben beschrieben i.d.R. vier Eckkoordinaten dem Programm melden. Jedoch gibt es auch zahlreiche Programme, wie die in den GPS-Geräten von Magellan oder Viewerprodukte, die aus lizenzrechtlichen Gründen ausschließlich in einem properitären Format arbeiten können. Hier ist es dir nicht möglich, externe Daten in jedweder Form zu importieren, die nicht durch den Hersteller zugelassen ist.

die zweite Voraussetzung für das importieren eigener Karten ist, dass du weißt, in welcher Projektion deine Karten erstellt worden sind. Nur so kann das Programm deine eigenen Karten in das richtige Koordinatensystem legen und Verzerrungen zu vermeiden. Es ist zwar möglich, Karten in anderen Kartensysteme zu transformieren, aber gerade bei Rasterdaten ist das nicht unproblematisch, da kommen manchmal recht seltsame Effekte zustande. Und auch beim Transformieren musst du die Ausgangsprojektion kennen.

das von tiger genannte freewaretool sollte dein Problem lösen können.

Gruß
Carmen
 
A

Anonymous

Guest
@ mamapapakind: kannst du bitte mal die runden klammern in deiner sig zu eckigen klammern machen?

happy bbcoding
 

mamapapakind

Geocacher
@HHL: etwa so :)? Danke für den Tipp, hätte mich gleich auf die Suche nach dem Fehler gemacht, aber so gehts schneller.

Gruß
Carmen
 

mamapapakind

Geocacher
hmm, jetzt wüßte ich noch gerne, warum ich jeweils eine 0 in der Statistik habe (habe ganz sicher schon welche versteckt und gefunden :lol: ) und frog heiße ich auch nicht. Ach immer diese kleinen Tücken für unwissende.

Carmen
 
A

Anonymous

Guest
jetzt noch zwei leerzeichen hinten weg und in der url durch + ersetzen, und dann klappt es.


happy hunting.
 

-tiger-

Geowizard
mamapapakind schrieb:
Es ist zwar möglich, Karten in anderen Kartensysteme zu transformieren, aber gerade bei Rasterdaten ist das nicht unproblematisch, da kommen manchmal recht seltsame Effekte zustande.

Zur Vollständigkeit nochmal ein Link zu GRASS, damit kann man solche Transformationen machen. Auch unbekannte Projektionen lassen sich in was sinnvolles "verbiegen", dazu sind dann aber mehr als vier Referenzpunkte nötig, je mehr desto besser. Das Programm (bzw. es sind genau genommen verdammt viele Programme) ist nicht ganz trivial in der Bedienung aber für GISser, die nicht gerade die Kohle für ArcInfo übrig haben eine geniale Sache:

http://grass.itc.it/

Viel Spass bein GISen :)

Tiger
 
A

Anonymous

Guest
Chups schrieb:
… Wenn ich nun aber meine eigene Karte habe, und dazu ein Imagemap erstellen will, wofür ich allerdings irgendwie gps-Koordinaten in Pixelkoordinaten (bezogen auf diese Karte) umwandeln muß, dann helfen mir da fertige Programme nicht, oder seh ich da irgendwas falsch? :(
das siehst du wohl falsch:

17c243e3-7112-4295-84a2-664720f4867b.jpg


erstellt in kaum fünf minuten. die wps (hier: caches) sind in nullkommanix als gpx-file geladen.

happy mapping.
 
OP
C

Chups

Geonewbie
@HHL

womit hast du das Bild hier jetzt erzeugt?

Und - ist das jetzt ein einfaches jpg auf dem Punkte eingezeichnet sind, oder eine wirkliche interaktive Karte, also eine Karte auf der man diese Cachesymbole auch anklicken kann und zur Cachebeschreibung kommt?
 

mamapapakind

Geocacher
-Tiger- schrieb:
Das Programm (bzw. es sind genau genommen verdammt viele Programme) ist nicht ganz trivial in der Bedienung aber für GISser, die nicht gerade die Kohle für ArcInfo übrig haben eine geniale Sache.
Tiger

Na, es muss nicht gleich ein ArcInfo sein, ich komme von der MapInfo Fraktion, aber zugegebenermaßen ist dieses Programm für einen einfachen Anwender immer noch teuer genug :wink: .

Soso, du bist also auch ein GISler!?

Gruß
Carmen
 
Oben