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

API für gc.com?

Kalli

Geowizard
Bevor Ihr von einem Server aus irgendwelche Sachen treibt, die gc.com nicht gerne sieht, solltet Ihr mal hier etwas lesen. Da hat mal jemand selbst einen KML-Network-Link gebastelt, weil es so toll ist.

PS: Nicht nur GSAK kann Cachedaten auf einer Karte darstellen, siehe Signatur.
 
Kalli schrieb:
Bevor Ihr von einem Server aus irgendwelche Sachen treibt, die gc.com nicht gerne sieht, solltet Ihr mal hier etwas lesen.
Also ich fühle mich damit mal nicht angesprochen. Denn soweit ich weiß kann ich die Daten aus nem PQ zu privaten Zwecken so verwenden wie ich lustig bin. Und ich belästige damit ja auch nicht ihre Server,

Kalli schrieb:
PS: Nicht nur GSAK kann Cachedaten auf einer Karte darstellen, siehe Signatur.
Aber keins kann das automatisiert per Cronjob unter Linux und genau das ist ja mein Problem. Oder hab ich da was übersehen? Das Karte zusammenklicken geht mit diversen Tools ja probemlos gut. Ich habe nur einfach keine Lust, mir täglich die Karte manuell erstellen zu müssen! :wink:
 

Kalli

Geowizard
@Chip & Chap: Verstehe ich dich jetzt richtig: Du lässt Dir per Mail eine PQ zusenden, machst dann irgendwelche Magic mit den Daten um Dir letztendlich für deinen privaten Gebrauch die Daten in einer Google-Maps anzeigen zu lassen?

CacheWolf kann sich auch für ein Gebiet Karten laden (von Expedia) und die Caches darauf anzeigen. Nebenbei kann man damit natürlich noch paperless cachen gehen und auch die Daten in verschiedene Formate exportieren. Man muss allerdings die GPX (bzw. das zip) aus der PQ manuell importieren.
 
Kalli schrieb:
@Chip & Chap: Verstehe ich dich jetzt richtig: Du lässt Dir per Mail eine PQ zusenden, machst dann irgendwelche Magic mit den Daten um Dir letztendlich für deinen privaten Gebrauch die Daten in einer Google-Maps anzeigen zu lassen?
Genau, ich will einfach eine tagesaktuelle Googlemap mit den Caches in unserer Gegend. Und damit die Karte aktuell bleibt, muß sie sich halt "irgendwie" automatisch aktualisieren.

Kalli schrieb:
CacheWolf kann sich auch für ein Gebiet Karten laden (von Expedia) und die Caches darauf anzeigen. Nebenbei kann man damit natürlich noch paperless cachen gehen und auch die Daten in verschiedene Formate exportieren. Man muss allerdings die GPX (bzw. das zip) aus der PQ manuell importieren.
Ich brauche ein Programm, das ich unter Linux scripten kann. Alle grafischen Programme fallen da schonmal komplett aus, da ich die nicht automatisieren kann. Und wenn möglich hätte ich auch gerne eine Googlemap. Ich finde das recht praktisch, wenn man mal schnell auf das Satellitenbild umschalten kann.

Da ich leider bisher nichts passendes gefunden habe, habe ich mir die o.g. Lösung (PQ -> Datenbank -> Googlemap) ausgedacht. Für andere Idee oder Vorschläge bin ich aber sehr dankbar, ich bin nicht so das Programmier-Genie :wink:
 

Kalli

Geowizard
OK, scripten kann man den CacheWolf noch nicht. Aber wenn Du mal paperless cachen willst, weist Du ja jetzt, wo Du schauen musst. :wink:

CacheWolf läuft übrigens auch unter Linux.
 
OP
S

steffenvogel

Geocacher
Tja ich hab es wohl verpennt die Diskussion zu verfolgen :/.
Durch meine Recherchen bin ich auch auf die PHP Klasse curl gestoßen.
Das verlinkte PHP Script wird mir auch sehr weiterhelfen.

Vielen Dank..

Steffen
 
OP
S

steffenvogel

Geocacher
Nachdem ich mich nochmal etwas mit dem Thema beschäftigt habe, kann ich nun einen Erfolg vermelden. Ich habe es geschafft, die gc.com eigene GoogleMaps Daten auszulesen und in ein KML umzuformen. Damit ist eine genaue Darstellung der Caches in Google Earth nun möglich. Natürlich könnte man mit den Daten auch Scanner füttern.

hier mal ein Beispieldatensatz, der per AJAX und JSON beim Bewegen der Karte geladen wird:
Code:
{"cs": {"li": false,"dist": 2.5259692750789,"pm": false,"count": 15,"c": 1,"et":0.00214487973367926,"cc": [{"lat": 47.683333,"id": 285372,"lon": -122.35,"gc": "GCQBQF","ctid": 8,"f": false,"o": false,"ia": true,"nn": "Seattle Sudoku"},]}}

Übermittelt wird also (soweit bekannt):
- ob man Premium Member ist
- wieviele Caches sich im Kartenausschnitt befinden
- die genauen Koordinaten der Caches
- die gc.com Cache-ID (nicht der WP und nicht die GUID)
- der Cache Way Point
- der Cache Typ
- ist man Owner des Caches?
- hat man den Cache bereits gefunden?
- ist der Cache aktiv?
- der Cachename

Maximal werden 500 Caches pro Anfrage übertragen.

Fogende Daten müssen per POST an diese URL gesendet werden:

Code:
__VIEWSTATE=[i]der ASPX Viewstate[/i]
eo_cb_id=_ctl0_Content_cbAjax
eo_cb_param={"c": 1, "m": "", "d": "47.683592272858526|47.66637000602024|-122.3171854019165|-122.36512184143066"}

Code:
__VIEWSTATE
enthält eine einzigartige ID zur Identifizierung des Clients. Beim ersten Besuch von gc.com erhält jeder User einen solchen Viewstate und ein zusätzliches Cookie.
Code:
eo_cb_param
enthält den Kartenausschnitt.

Auch ein Cookie mit einer SessionId sollte übertragen werden.
Es ist nicht nötig angemeldet zu sein. Es werden keine gc.com Accountdaten benötigt.

Mit PHP & cURL lässt sich mit diesem Informationen recht einfach ein KML Networklink erzeugen, der genaue Cache Koordinaten enthält. Des weiteren habe ich zu jedem Cachemarker noch einen Link zum Hinzufügen zur Watchlist hinzugefügt.
Auch die Premiummember-Funktionen lassen sich nun ohne weiteres auch für normale Member nutzen (sogar in Google Earth).

Ich werde den Code nur auf Anfrage und nach Vertrauen weitergeben. Vielleicht findet sich ja sogar jemand der das ganze in ein kleines Python oder Perl Skript packt.
Auf einem Server kann man das Skript leider nicht laufen lassen, da sonst Groundspeak einfach die Server IP sperren würde. Solange jeder das Script hinter seiner dynamischen IP betreibt hat Groundspeak keine effizient Möglichkeit dies zu verhindern.

Grundsätzlich kann Groundspeak diese Lücke nur sehr schwer schließen. Schließlich müssen sie ja irgendwie zwischen legitimen und illegalen Anfragen unterscheiden. Und das kann für sie recht kompliziert werden. Das Skript muss sich nur haargenau wie das GoogleEarth Frontend verhalten.

gruß Steffen
 
So, also es geht inzwischen auch ganz offiziell ohne Spidern (aber leider noch ohne API): Wir haben bei Groundspeak mal nett angefragt und uns wurde erlaubt, die Daten aus einem Pocketquery in einer Datenbank weiterzuverarbeiten um daraus eine Cache-Karte mit speziellen Suchfunktionen zu erstellen: Geocaching Westpfalz

Frohe Weihnachten! :smile:
 
Oben