Hi,
wie schon an anderer Stelle erwähnt, fehlt dem GPX Export ein "id" attribut im groundspeak:cache tag, um vom Garmin Colorado direkt verstanden zu werden.
Ich habe mal einen billigen patch zusammengeschustert, der soweit funktioniert. ABER: ich zähle einfach von 0 hoch, und es wäre irgendwie netter, wenn man für jeden Cache immer eine eindeutige id nehmen würde, dann könnte man evtl. mehrere gpx files parallel auf dem colorado haben (ohne überschneidungen...). Ich habe keine Ahnung wie die pocket queries ihre ids berechnen, aber da die ja immer aus einer DB kommen haben die Jungs es natürlich leicht, eine eindeutige Kennung mitzugeben.
Anyway, besser als vorher ist es so auf jeden Fall
wie schon an anderer Stelle erwähnt, fehlt dem GPX Export ein "id" attribut im groundspeak:cache tag, um vom Garmin Colorado direkt verstanden zu werden.
Ich habe mal einen billigen patch zusammengeschustert, der soweit funktioniert. ABER: ich zähle einfach von 0 hoch, und es wäre irgendwie netter, wenn man für jeden Cache immer eine eindeutige id nehmen würde, dann könnte man evtl. mehrere gpx files parallel auf dem colorado haben (ohne überschneidungen...). Ich habe keine Ahnung wie die pocket queries ihre ids berechnen, aber da die ja immer aus einer DB kommen haben die Jungs es natürlich leicht, eine eindeutige Kennung mitzugeben.
Anyway, besser als vorher ist es so auf jeden Fall
Code:
Index: GPXExporter.java
===================================================================
--- GPXExporter.java (revision 1533)
+++ GPXExporter.java (working copy)
@@ -1,7 +1,12 @@
package exp;
-import ewe.sys.*;
+import CacheWolf.CacheHolderDetail;
+import CacheWolf.CacheType;
+import CacheWolf.Common;
+import CacheWolf.Preferences;
+import CacheWolf.Profile;
+import CacheWolf.SafeXML;
import ewe.io.FileBase;
-import CacheWolf.*;
+import ewe.sys.Time;
/**
* Class to export the cache database to a GPX file with gc.com
* extensions.<br>
@@ -19,7 +24,7 @@
super();
this.setMask("*.gpx");
this.setNeedCacheDetails(true);
- this.setHowManyParams(LAT_LON);
+ this.setHowManyParams(LAT_LON|COUNT);
this.setTmpFileName(FileBase.getProgramDirectory() + "/temp.gpx");
}
@@ -27,7 +32,7 @@
super();
this.setMask("*.gpx");
this.setNeedCacheDetails(true);
- this.setHowManyParams(LAT_LON);
+ this.setHowManyParams(LAT_LON|COUNT);
this.setTmpFileName(FileBase.getProgramDirectory() + "/temp.gpx");
}
@@ -47,7 +52,7 @@
return strBuf.toString();
}
- public String record(CacheHolderDetail ch, String lat, String lon) {
+ public String record(CacheHolderDetail ch, String lat, String lon, int count) {
StringBuffer strBuf = new StringBuffer(1000);
try{
@@ -64,7 +69,7 @@
strBuf.append(" <type>Geocache|").append(CacheType.transType(ch.type)).append("</type>\r\n");
String dummyAvailable = ch.is_available ? STRING_TRUE:STRING_FALSE;
String dummyArchived = ch.is_archived ? STRING_TRUE:STRING_FALSE;
- strBuf.append(" <groundspeak:cache available=\"").append( dummyAvailable ).append( "\" archived=\"" ).append( dummyArchived).append( "\" xmlns:groundspeak=\"http://www.groundspeak.com/cache/1/0\">\r\n");
+ strBuf.append(" <groundspeak:cache id=\"" + count + "\" available=\"").append( dummyAvailable ).append( "\" archived=\"" ).append( dummyArchived).append( "\" xmlns:groundspeak=\"http://www.groundspeak.com/cache/1/0\">\r\n");
strBuf.append(" <groundspeak:name>").append(SafeXML.cleanGPX(ch.CacheName)).append("</groundspeak:name>\r\n");
strBuf.append(" <groundspeak:placed_by>").append(SafeXML.cleanGPX(ch.CacheOwner)).append("</groundspeak:placed_by>\r\n");
strBuf.append(" <groundspeak:owner>").append(SafeXML.cleanGPX(ch.CacheOwner)+"</groundspeak:owner>\r\n");