Verwaltung der Caches

Einführung

Die Cache-Listings beziehe ich von der Seite geocaching.com. Als Premium-Member gibt es dort die Möglichkeit, sich "Pocket-Queries" erstellen zu lassen. Diese Pocket-Queries können bis zu 1000 Caches enthalten, und es gibt viele Möglichkeiten nach bestimmten Kriterien zu filtern. Man sollte also meinen, dass es ausreicht, sich eine Pocket-Query aufs Navi zu laden, und los geht's.

Das ist auch im Prinzip richtig, aber es gibt einige Gründe, die dafür sprechen, die Caches lokal auf dem PC in einer Datenbank zu halten.

Zum einen kann man offline arbeiten, zum anderen hat man mehr Möglichkeiten, die Caches durch Filter zu organisieren. Und gerade, wenn es darum geht, die Koordinaten für gelöste Mysterys zu verwalten, ist eine lokale DB von Vorteil, auch, wenn geocaching.com inzwischen das Abspeichern von "korrigierten" Koordinaten erlaubt.

Im folgenden möchte ich darstellen, wie ich meine Caches verwalte.

OCM: eine freie Cache Datenbank

Die unter Geocachern meistgenutzte Datenbank ist wohl GSAK. Diese läuft jedoch nur unter Windows. Als Linux-Nutzer hat man zwar die Möglichkeit, sie unter wine laufen zu lassen, aber nach kurzen Tests entschied ich mich, mich nach Alternativen umzusehen. Hängen geblieben bin ich bei Open Cache Manager (OCM). Auch diese DB stellt für mich keine optimale Lösung dar, denn die Stabilität und die Geschwindigkeit lassen zu wünschen übrig (bezogen auf OCM 1.0.14). Jedoch bietet dieses Programm viel von dem, was ich brauche.

Das Problem

OCM bietet zwar die gängigsten Filtermöglichkeiten an, dennoch habe ich keine Möglichkeit gefunden, auf einfache Weise mein Garmin direkt aus OCM heraus so zu bespielen, wie ich es brauche.

Zum besseren Verständnis hier meine Anforderungen:

  1. Mysterys: Ich möchte auf dem Garmin nur Mysterys haben, die entweder gelöst sind, oder bei denen es sich um Bonus- oder Challenge-Caches handelt.
    Klar, was soll ich im Wald mit ungelösten Mysterys?
  2. Wegepunkte für die Originalkoordinaten von gelösten Mysterys möchte ich nicht auf dem Garmin haben.
    Wozu auch? Wo der Owner das Fragezeichen auf der Karte platziert hat, ist für mich nicht relevant. Im übrigen stehen die Original-Koordinaten auch im Listing, sobald man "korrigierte" Koordinaten setzt. Und nichts ist schlimmer, wenn man auf der Karte ein Fragezeichen sieht, aber nicht sofort weiß: "Ist der gelöst, und kann ich da hin rennen, oder müsste ich den erst noch lösen?"
  3. Caches, die disabled sind, möchte ich auf dem Garmin haben, aber sie sollen leicht als solche zu erkennen sein. Dem Cachenamen soll ein "(-) " vorangestellt werden (ähnlich wie gelöste Mysterys mit "(*) " gekennzeichnet werden).
    Manchmal sind Caches disabled, aber doch auffindbar. Manchmal hat der Owner sie einfach nicht wieder frei gegeben, manchmal disabled der Owner aber auch seinen Cache weil z.B. eine Wartung fällig ist, obwohl der Cache logbar ist.
  4. Wenn in OCM eine Auswahl von Caches getroffen wurde, soll nur ein Arbeitsgang erforderlich sein, um die Caches auf das Garmin zu spielen.

Es wird schnell klar, dass diese Anforderungen weit über das hinausgehen, was OCM bietet. Allein an der ersten Anforderung scheitert OCM, denn die Filter können zwar kombiniert werden, aber eine Verknüpfung ist immer auf der AND-Operation basierend, d.h. eine Cacheauswahl kann nur weiter eingeschränkt, nicht aber erweitert werden. Eine OR-Verknüpfung würde hier weiter helfen, wird aber wie gesagt nicht von OCM unterstützt.

Damit ist klar, dass das Problem nicht in OCM gelöst werden kann. Wenn aber die Lösung außerhalb von OCM zu suchen ist, dann soll sie gleich so allgemein gehalten werden, dass sie auch für andere Datenbanken und sogar für originale Pocket-Querys von geocaching.com funktioniert.

Die Lösung

Zunächst die gute Nachricht: Es gibt eine einfache und elegante Lösung, die ich hier bzw. in der Bits&Bytes-Ecke vorstellen möchte.

Und jetzt die vielleicht schlechte Nachricht für einige: Sie ist Linux/Unix-basierend. Dennoch kann eventuell der Ansatz auch für andere Betriebssysteme wie Windows angepasst werden. Wenn jemand unter Windows Erfolg hat, würde ich mich über eine Rückmeldung freuen und diesen Beitrag entsprechend ergänzen.

Zur Lösung: Ich speichere die Caches aus OCM heraus nicht direkt auf dem Garmin ab, sondern in einer besonderen Datei. Diese heißt bei mir ~/pipe/HomeZone.gpx. Wie durch Zauberhand landen damit automatisch die Caches gefiltert nach meinen Wünschen auf dem Garmin. Genau genommen handelt es sich bei ~/pipe/HomeZone.gpx gar nicht um eine Datei, sondern um eine Pipe. Was genau sich hinter dieser Pipe verbirgt und wie die Zauberhand im einzelnen funktioniert, kann in der Bits&Bytes-Ecke nachgelesen werden. Hier nur ganz kurz dazu soviel: Im Hintergrund werkelt das Tool xmlstarlet, das es erlaubt, über XPath Teile aus XML-Dateien auszulesen oder zu manipulieren.

Gerade dadurch, dass sich die Pipe wie eine Datei verhält, wird die Lösung universell einsetzbar. So ist es der Pipe egal, ob sie die Daten von OCM bekommt, oder ob z.B. direkt eine Pocket-Query in diese Pipe kopiert wird.

Die in der Bits&Bytes-Ecke vorgestellte Lösung ist sogar ausbaufähig. So ist es denkbar, aus der *.gpx-Datei auch noch POI-Dateien zu generieren und aufs Garmin zu spielen. Das würde es ermöglichen, selbst definierte Symbole auf der Karte zu verwenden.

Natürlich hat die Lösung auch Einschränkungen:

  • In OCM kann man die Anzahl der Caches für einen Export limitieren. Hat man hier z.B. 1000 eingestellt, so werden diese 1000 Caches an den Filter gegeben. Aufgrund der Filterfunktion werden auf dem Garmin dann aber weniger als die 1000 Caches vorhanden sein.
  • Die Namen der Pipes und damit auch die Namen der *.gpx Dateien auf dem Garmin sind fest vorgegeben. Ich selbst habe mir drei Pipes angelegt, komme aber eigentlich sogar mit zwei Pipes aus ("HomeZone.gpx" und "AndereGegend.gpx").