• 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 für Garmin Oregon (und Colorado?)

such Bär

Geocacher
Ich habe mir vor kurzem einen neuen Oregon zugelegt. Leider funktionieren die .gpx Files die der Cachewolf erzeugt nicht auf dem Oregon das der "groundspeak:cache" Tag nicht das Attribut "id" enthält.

Leider kann ich keine Ahnung von Java, aber ich hab trotzdem mal probiert eine id in den export zu integrieren. Dazu wandle ich den Waypointcode direkt in eine ID um, ist also nicht die von GC.com. Sieht aber so aus als würd es funktionieren. Falls noch jemand daran interessiert ist:

1. Ich hab den Trunk ausgecheckt.
2. Dann hab ich die Zeile
Code:
strBuf.append("    <groundspeak:cache available=\"").append( dummyAvailable ).append( "\" archived=\"" ).append( dummyArchived).append( "\" xmlns:groundspeak=\"http://www.groundspeak.com/cache/1/0\">\r\n");
In der Datei /trunk/src/exp/GPXExporter.java durch den Code
Code:
				String dummyId = "";
				String dummyWp	= ch.wayPoint;
				String[] splittArray = dummyWp.split("");
				String dummyTmp = "";
					int arraylength = splittArray.length;				
					for (int i=3;i<arraylength;i++){
					dummyTmp = "";
					if (splittArray[i].equals("0")) {
						dummyTmp = "00" ;
					} else if (splittArray[i].equals("1")){
						dummyTmp = "01" ;
					} else if (splittArray[i].equals("2")){
						dummyTmp = "02" ;
					} else if (splittArray[i].equals("3")){
						dummyTmp = "03" ;
					} else if (splittArray[i].equals("4")){
						dummyTmp = "04" ;
					} else if (splittArray[i].equals("5")){
						dummyTmp = "05" ;
					} else if (splittArray[i].equals("6")){
						dummyTmp = "06" ;
					} else if (splittArray[i].equals("7")){
						dummyTmp = "07" ;
					} else if (splittArray[i].equals("8")){
						dummyTmp = "08" ;
					} else if (splittArray[i].equals("9")){
						dummyTmp = "09" ;
					} else if (splittArray[i].equals("A")){
						dummyTmp = "10" ;
					} else if (splittArray[i].equals("B")){
						dummyTmp = "11" ;
					} else if (splittArray[i].equals("C")){
						dummyTmp = "12" ;
					} else if (splittArray[i].equals("D")){
						dummyTmp = "13" ;
					} else if (splittArray[i].equals("E")){
						dummyTmp = "14" ;
					} else if (splittArray[i].equals("F")){
						dummyTmp = "15" ;
					} else if (splittArray[i].equals("G")){
						dummyTmp = "16" ;
					} else if (splittArray[i].equals("H")){
						dummyTmp = "17" ;
					} else if (splittArray[i].equals("I")){
						dummyTmp = "18" ;
					} else if (splittArray[i].equals("J")){
						dummyTmp = "19" ;
					} else if (splittArray[i].equals("K")){
						dummyTmp = "20" ;
					} else if (splittArray[i].equals("L")){
						dummyTmp = "21" ;
					} else if (splittArray[i].equals("M")){
						dummyTmp = "22" ;
					} else if (splittArray[i].equals("N")){
						dummyTmp = "23" ;
					} else if (splittArray[i].equals("O")){
						dummyTmp = "24" ;
					} else if (splittArray[i].equals("P")){
						dummyTmp = "25" ;
					} else if (splittArray[i].equals("Q")){
						dummyTmp = "26" ;
					} else if (splittArray[i].equals("R")){
						dummyTmp = "27" ;
					} else if (splittArray[i].equals("S")){
						dummyTmp = "28" ;
					} else if (splittArray[i].equals("T")){
						dummyTmp = "29" ;
					} else if (splittArray[i].equals("U")){
						dummyTmp = "30" ;
					} else if (splittArray[i].equals("V")){
						dummyTmp = "31" ;
					} else if (splittArray[i].equals("W")){
						dummyTmp = "32" ;
					} else if (splittArray[i].equals("X")){
						dummyTmp = "33" ;
					} else if (splittArray[i].equals("Y")){
						dummyTmp = "34" ;
					} else if (splittArray[i].equals("Z")){
						dummyTmp = "35" ;
					} else {
						dummyTmp = "99" ;
					}
					dummyId +=  dummyTmp;		
				}

				strBuf.append("    <groundspeak:cache id=\"").append( dummyId ).append("\" available=\"").append( dummyAvailable ).append( "\" archived=\"" ).append( dummyArchived).append( "\" xmlns:groundspeak=\"http://www.groundspeak.com/cache/1/0\">\r\n");
ersetzt.
3. Und dann mit compile.sh kompiliert

Bei mir sieht es auf den ersten Blick aus als ob es funktionieren würde. Villeicht hilft das ja noch jemand weiter bis die ID in die offizielle Version integriert ist.
 

MiK

Geoguru
Irgenwo gibt hier im Forum gibt es auch einen Codeschnipsel, mit dem man aus dem Wegpunkt die richtige ID berechnen kann. Wenn wir es demnächst in den Code einbauen, werden wir wohl dieses Verfahren benutzen.
 

rautaxe

Geocacher
Also beim Triton hab ich einfach die
GCxxx als id genommen.
Funktioniert auch.

Ich bin gerade dabei die GPXExporter.java zu patchen,
so dass die letzten 5 Logs in die Langbeschreibung übernommen
werden und die Bilder auch mit ins GPX gepackt werden.
Ist wahrscheinlich heute oder morgen fertig.
 
OP
S

such Bär

Geocacher
Cool.
Nur die Waypoints zu benutzen hat bei mir nicht geklappt :( Aber die Oregons sind wohl sowieso recht pingelig. Die OC Notation für die Schwierigkeit verstehen die auch nicht. Also "Terrain 1.0" kennen die nicht nur "Terrain 1".
Wäre super wenn du das mit den Logs dann mal posten könntest, dann würde alles mal soweit funktionieren das es akzeptabel ist :D
 

rautaxe

Geocacher
Mik: um Dir ein wenig Arbeit zu ersparen,
hier mal die Erzeugung der ID aus dem Waypoint in Java:
Code:
	public int ziffer(char z)
	{
        return "0123456789ABCDEFGHJKMNPQRTVWXYZ".indexOf(z);
	}

      // Waypoint ohne "GC"
	public int gc2dbid(String waypoint)
	{
		int result;
		int base;

        if (waypoint.length() < 4 || waypoint.length() == 4 && ziffer(waypoint.charAt(0)) < 16)
                base = 16;
        else
                base = 31;

        result = 0;

        for (int digit = 0; digit < waypoint.length();digit++)
        {
                result *= base;
                result += ziffer(waypoint.charAt(digit));
        }

        if (base == 31)
                result += 16*16 *16*16 - 16*31*31*31;

        return result;
	}

Die gepatchte Cachewolfversion dauert noch ein bisschen.

Das ganze in den GPXexporter
und mit

Code:
				strBuf.append("    <groundspeak:cache id=\"").append(gc2dbid(ch.wayPoint.replace("GC", ""))).append("\" available=\"").append( dummyAvailable ).append( "\" archived=\"" ).append( dummyArchived).append( "\" xmlns:groundspeak=\"http://www.groundspeak.com/cache/1/0\">\r\n");
nutzen.
 

pfeffer

Geowizard
es gibt irgendwo in ewe bereits eine Methode, mit der man Zahlen beliebigen Basen (2-36) umrechnen kann, vielleicht sollte man die verwenden.

Gruß,
Pfeffer.
 

rautaxe

Geocacher
@pfeffer:
Da hast Du sicherlich recht ;)
Ich bin aber gerade dabei mich in Cachewolf einzuarbeiten.
Ursprünglich wollte ich eigentlich nur eine kleine Anpassung
für mein Triton machen ;).
NAtürlich gehört der Code auch nicht in die GPXExporter Datei.
Soll auch nur ein schneller Hack sein, der Suchbär weiterhelfen kann.
 

UncleOwen

Geocacher
rautaxe schrieb:
Code:
                result += 16^4 - 16*31^3;
Hmm, nee. 16*16*16*16 - 16*31*31*31.

pfeffer schrieb:
es gibt irgendwo in ewe bereits eine Methode, mit der man Zahlen beliebigen Basen (2-36) umrechnen kann, vielleicht sollte man die verwenden.
Die funktioniert aber dann vermutlich nur, wenn die Buchstaben A-Z durchgängig verwendet werden. In Groundspeaks Kodierung fehlen aber zwischendrin 5.
 
OP
S

such Bär

Geocacher
macht er :) Danke an dieser Stelle.
Ich war gerade dabei loszugooglen wie man in Java mathematische Funktionen schreibt. Aber so klein wärs bei mir bestimmt nicht geworden :up:
 

Teleskopix

Geowizard
Hallo,

die Java-Version des Cachewolf von
http://magellanboard.alpentourer-alpenpaesse.de/viewtopic.php?p=15582&sid=966c2cc873c4938fcb427a451239efd9#15582
funktioniert mit dem Oregon. Einfach GPX-Export für Triton gewählt, Caches und die letzten 5 Logs werden auch auf dem Oregon angezeigt. Wenn's auf dem Oregon geht, gehts natürlich auch auf dem Colorado.

VG
Teleskopix
 

Geo-Johnny

Geowizard
Aha, sehr interessant. Jetzt würde mich noch interessieren wie die CacheID aussieht, ob die echte Groundspeak ID generiert wird, oder eine fortlaufende ID?
Ich möchte das *.jar File dort nicht downloaden, weil man eine E-Mail Adresse angeben muß und ich nicht tausende Werbemails bekommen möchte.
Hast Du nähere Informationen was das ausgegebene GPX Format betrifft, oder kannst Du mir dieses gepatchte CacheWolf.jar File zur Verfügung stellen?

L.G. Johnny!
 

rautaxe

Geocacher
@Geo-Johnny
Dank OncleOwen ist es jetzt die richtige :)

Wieso email-addy angeben?
einfach den Punkt "Download with FileFactory Basic"
auswählen (Punkt2)
 

Geo-Johnny

Geowizard
rautaxe schrieb:
@Geo-Johnny
Wieso email-addy angeben?
einfach den Punkt "Download with FileFactory Basic"
auswählen (Punkt2)
Umpfff, da hatte ich wohl etwas übersehen. :eek:ps:
Lieben Dank, ich habs mir schon geholt und bin bereits am Testen! ;)
 

Teleskopix

Geowizard
Hallo,

aufpassen, bitte
vor dem Export Filter setzen
keine additional Waypoints, Parkplätze, .....
nur die Caches
sonst bleib der Exporter gerne hängen und die Ergebniss-GPX ist absolut unbrauchbar.

VG
Teleskopix
 

rautaxe

Geocacher
unter http://magellanboard.alpentourer-alpenpaesse.de/viewtopic.php?p=15630#15630
hab ich ne neue Version eingestellt.
wenn < in der Beschreibung oder den Logs vorkommt,
bleib ich in einer Endlosschleife hängen :(

Die Frage ist, ob das mit den Addis auch daran liegen kann.
 
Oben