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

GPX Export: 1 kleiner Wunsch

Lucifer1

Geocacher
Hallo,
Zuerst mal Hut ab vor dem Klasse programm :schockiert:

beim Export nach GPX hätte ich da noch ein Wunsch.
CW exportiert die TB's nicht in die GPX Datei, es wird immer.
<groundspeak:travelbugs />
eingetragen.

Toll wäre ein Eintrag
<groundspeak:travelbugs>
<groundspeak:travelbug id="" ref="">
<groundspeak:name><![CDATA[Fabienne s Happy Caching - Geocoin]]></groundspeak:name>
</groundspeak:travelbug>
<groundspeak:travelbug id="" ref="">
<groundspeak:name><![CDATA[Team Surveyor's "EUREKA Geocoin"]]></groundspeak:name>
</groundspeak:travelbug>
</groundspeak:travelbugs>

Hintergrund ist, dass auf meinem Mobile Phone CW doch etwas schwerfällig läuft.
Cachemate ist da deutlich minimalistischer und deshalb weniger Recourcenhungrig.

Der GPX import von CW daten passt hervoragend, nur fehlen die TB's.

Gruß
Lucifer1
 
OP
L

Lucifer1

Geocacher
MiK schrieb:
Sieht es denn im Original-GC-GPX so aus, wie von Dir vorgeschlagen?

100% kann ich das nicht bestätigen.

So baue ich das im moment mit meinem Selbstgebasteltem Script ein.

in Ref kommt der TBxxxx code rein
in ID kommt logischerweise die GUID

Ich hatte mir mal ein PM account für ein Monat geleistet um die GPX zu analysieren. ist schon ne weile her. Keine Ahnung wo ich die original GPX gespeichert habe.

Warscheinlich gibt es boch ein paar weitere TB Tags die ich nicht berücksichtige.

Cachemate für PPC kommt mit den Dateien auch super klar.

Gruß,
Lucifer1
 

greiol

Geoguru
MiK schrieb:
Sieht es denn im Original-GC-GPX so aus, wie von Dir vorgeschlagen?
Code:
      <groundspeak:travelbugs>
        <groundspeak:travelbug id="650533" ref="TB14KPW">
          <groundspeak:name>Travel Bug Dog Tag</groundspeak:name>
        </groundspeak:travelbug>
        <groundspeak:travelbug id="773351" ref="TB18QGQ">
          <groundspeak:name>Obelix</groundspeak:name>
        </groundspeak:travelbug>
      </groundspeak:travelbugs
steht in der PQ. der abschnitt kommt nach den logs

die xsd enthält auch schon vorbereitungen für atrribute. das wär ja mal was.
 
OP
L

Lucifer1

Geocacher
Hallo Greiol,
Hallo Mik,

Ich hab mal im Sourcecode nachgeschaut.

id und Ref werden von TB's zur zeit nicht con GC gelesen. Ist auch logisch, diese info findet sich nur auf der TB Seite selber und nicht auf der Cache Seite.

Das stört aber nicht unbedingt unmitelbar.

Ich würde gerne etwas vit der GPXExport.java rumexperimentieren.

Könnt ihr mir bitte kurz erläutern wie die Variablen für die TBs definiert sind.

P.S. Hab bisher noch nix in Java gemacht.
 

MiK

Geoguru
Es werden durchaus auch Informationen aus der TB-Seite ausgelesen, z.B. die Mission. Schau Dir das Ganze einfach noch mal ausführlicher an. Ich weiß jetzt auch nicht, was genau erfasst wird.
 
OP
L

Lucifer1

Geocacher
MiK schrieb:
Was genau meinst Du mit "id" und "Ref"? Und ist dies für Deinen Anwendungsfall überhaupt nötig?

Der Eintrag in der GPX ist ja so:
<groundspeak:travelbug id="650533" ref="TB14KPW">
<groundspeak:name>Travel Bug Dog Tag</groundspeak:name>
</groundspeak:travelbug>

die "650533" ist irgendeine ID vom Bug ist meines erachtens unwichtig.

das "TB14KPW" ist ja die Kennung des TB, analog dem Wegpunkt von einem Cache "CGxxxx" wenn man die nicht hat ist zwar ein bisschen blöd aber nicht schlimm.

Der Name ist der der von Cachewolf gelesen wird.
Die Mission passt nicht in die GPX Datei.

Ich habe mir die Daten von Cachewolf angesehen (Die XML Dateien von GC1HBYH z.B.)
<TRAVELBUGS>
<tb guid="6040a26a-d9bc-4669-9ad5-c8fedca478dc"><name><![CDATA[A Cache A Day - Geocoin]]></name><![CDATA[<br>
[D:] Einfach nur herumkommen.
<br>
[E:] Just travel around.]]></tb>
</TRAVELBUGS>

Daraus würde ich jetzt zuerst das in der GPX Datei machen:
<groundspeak:travelbug id="" ref="TB">
<groundspeak:name><![CDATA[A Cache A Day - Geocoin]]></groundspeak:name>
</groundspeak:travelbug>

Später kann man ja die fehlenden Infos auf der Detailseite des TB spidern
http://www.geocaching.com/track/details.aspx?guid=6040a26a-d9bc-4669-9ad5-c8fedca478dc

Da Steht dann:
Use TB1G8JW to reference this item.

im Quelltext der TB Seite findent man auch die ID 997330
<a id="ctl00_ContentBody_WatchLink" href="../my/watchlist.aspx?b=997330">Watch this Trackable Item</a></td>

Wenn man das dan hat kann man den kompletten Satz bilden:
<groundspeak:travelbug id="997330" ref="TB1G8JW">
<groundspeak:name><![CDATA[A Cache A Day - Geocoin]]></groundspeak:name>
</groundspeak:travelbug>

Gruß,
Lucifer
 
OP
L

Lucifer1

Geocacher
Ich hab mir mal die SpiderCG.java angeschaut.
ich glaub der Abschnitt code sollte es tun:
in der Funktion:
public void getBugs(CacheHolderDetai

Code:
					Extractor exId = new Extractor(bugDetails,"my/watchlist.aspx?b=","\">Watch this Trackable Item</a>",0,Extractor.EXCLUDESTARTEND); // By Lucifer1 read TB ID
					tb.setGuid(exId.findNext());

					Extractor exRef = new Extractor(bugDetails,"(",")",0,Extractor.EXCLUDESTARTEND); // By Lucifer1 read TB Ref
					tb.setGuid(exRef.findNext());

damit sollten sich die fehlenden Infos spidern lassen.

Ich hoffe ich mach keine zu peinlichen Fehler, es ist mein erster Kontakt mit Java.
 

MiK

Geoguru
Vom Prinzip her ist das so schon richtig. Nur speicherst Du so Deine neuen Informationen in der GUID. Man müsste dazu die Travelbug-Klasse erstmal erweitern. Außerdem muss das auch alles richtig gespeichert in der Datei gespeichert und wieder ausgelesen werden.

Aber mal eine ganz andere Frage: Was nutzen mir die Namen der TBs? Wenn noch nicht mal die Mission dann dabei ist?
 
OP
L

Lucifer1

Geocacher
Gute Frage!

Ich würde mal sagen die meisten leute interressiert es ob ein TB im Cache liegt.
Ach Ja, die Mission, naja da kümmere ich mich mal drum wenn ich den in der Tasche und geloggt habe...

Meine Sicht kommt aus der Ecke "Cachemate".
Da wird nur der Name, die Ref und die Seriennummer (Die findest du nur direkt auf dem Coin).
Beim loggen des Caches kannst du so gleich die TB's mitloggen und in dein Inventar aufnehmen.
Ein drop ist auch so möglich.

Klar die Mission zu kennen ist eigentlich nicht ganz unrelevant., wird aber von Cachemate nicht unterstützt.

Das mit der Datenstruktur ist mir schon klar. Ich will mir gar nicht erst ausdenken wass alles eingebaut werden muss um mit einer neuen Version dann auch noch alte XML Dateien einzulesen...

Daher mein Vorschlag nur die Vorhandenen Daten zu nehmen und in den GPX Export einzubauen.

Code:
				strBuf.append("      <groundspeak:logs>\r\n");
				strBuf.append("      </groundspeak:logs>\r\n");
DIE ZEILE WEG				strBuf.append("      <groundspeak:travelbugs />\r\n");
DAFÜR DAS				strBuf.append("      <groundspeak:travelbugs>\r\n");
For each Travelbug in list KEINE AHNUNG WIE EIN SOLCHES LOOP AUSSEHEN MUSS
				strBuf.append("      <groundspeak:travelbug id="" ref="TB">\r\n");
				strBuf.append("      <groundspeak:name>".append(SafeXML.DA DIE VARIABLE MIT DEM TB NAME9.append"</groundspeak:name>\r\n");
				strBuf.append("      </groundspeak:travelbug>\r\n");
next Travelbug ENDE VOM LOOP

				strBuf.append("      </groundspeak:travelbugs>\r\n");
				strBuf.append("    </groundspeak:cache>\r\n");

wenn kein TB da ist kommt nichts zwischen die Travelbugs TAGs

Wie du siehst weiss ich nicht wie ich die GPXexporter.java umschreiben muss um das zu haben was ich brauche.

P.S. Geht bei dir in DA auch die Welt gerade unter? hier in Butzbach ist das Wetter grausam.
 

MiK

Geoguru
Lucifer1 schrieb:
Gute Frage!

Ich würde mal sagen die meisten leute interressiert es ob ein TB im Cache liegt.
Ach Ja, die Mission, naja da kümmere ich mich mal drum wenn ich den in der Tasche und geloggt habe...
Ich habe die Erfahrung gemacht, dass dies sowieso selten mit der Realität überein stimmt. Und wenn es beim Laden der Daten noch gestimmt hat, dann hat es sich bis zur Ankunft am Cache noch dreimal geändert.

Lucifer1 schrieb:
Wie du siehst weiss ich nicht wie ich die GPXexporter.java umschreiben muss um das zu haben was ich brauche.
Mach Dir keine Mühe. Das ist für mich kein Problem. Ich will da sowieso noch was für die Logs einbauen. Warte einfach mal noch ein paar Tage ab.

Lucifer1 schrieb:
P.S. Geht bei dir in DA auch die Welt gerade unter? hier in Butzbach ist das Wetter grausam.
Ich war in Unna. Aber da wars auch nicht toll. Jetzt scheint wunderbar die Sonne.
 
OP
L

Lucifer1

Geocacher
Danke fürs überarbeiten. bin schon ganz gespannt.

MiK schrieb:
Ich habe die Erfahrung gemacht, dass dies sowieso selten mit der Realität überein stimmt. Und wenn es beim Laden der Daten noch gestimmt hat, dann hat es sich bis zur Ankunft am Cache noch dreimal geändert.

Ja öffters sind die TB's nicht mehr da. Aber, caches mit TB's sind oftmals die besseren...

MiK schrieb:
Jetzt scheint wunderbar die Sonne.
Ja am Sonntag war auch hier ganz schönes Wetter und gleich wieder auf Cachetour.
 

MiK

Geoguru
Lucifer1 schrieb:
MiK schrieb:
Ich habe die Erfahrung gemacht, dass dies sowieso selten mit der Realität überein stimmt. Und wenn es beim Laden der Daten noch gestimmt hat, dann hat es sich bis zur Ankunft am Cache noch dreimal geändert.

Ja öffters sind die TB's nicht mehr da. Aber, caches mit TB's sind oftmals die besseren...
Wohl weil in Micros und Nanos keine TBs passen ;-)
 
OP
L

Lucifer1

Geocacher
Hallo,

Zuerst danke für die Option die TB's im GPX export einbinden zu können.

Hierzu noch einen kleinen Wunsch:
im export wird der TB mit einer ID versehen jedoch bleibt die Ref leer.
Code:
<groundspeak:travelbug id="0" ref="">

Kann bitte ein Dummy in Ref, sonst spinnt CM beim anzeigen der TB's
also immer ref="TB" in die Zeile schreiben.

Danke,
Lucifer
 

smtr

Geocacher
... und noch ein Wunsch
Ich nutze CacheWolf um GPX Dateien zu erstellen. Diese werden dann aufs Smartfone mit SmartGPX importiert.
Geht richtig gut und die Bilder bekomme ich auch mit hin. Leider aber nicht die Logs.
Ist es möglich die Logs mit zu übernehmen?

smtr
 

MiK

Geoguru
Das geht schon. Es gibt nur keine GUI für die Einstellung. Schau mal in die pref.xml und ändere den Wert von numberOfLogsToExport. Sollte aber auf 5 stehen.
 
Oben