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

kml Dateien von TB's aktuell halten auf eigener Website

der_Sperling

Geocacher
Hallo zusammen,

an anderer Stelle habe ich mal mein Problem gepostet mit dem Einbinden von kml Dateien auf meiner Homepage.
Es ging darum, die downloadbaren kml Dateien von gc.com in google Maps Karten zu implementieren.

Soweit ist das ja auch kein Problem. Was aber problematisch ist, ist die Aktualisierung dieser kml Dateien.
Heisst: wenn ein TB seine Reise fortgesetzt hat, muss man eine neue kml Datei auf seinen Webspace laden. Damit die Verlinkungen auch weiterhin funktionieren, muss man natürlich den gleichen Dateinamen und den gleichen Pfad wählen. Das hat allerdings zur Folge, dass diese Karten in ihrer Darstellung nicht aktualisiert werden und weiterhin der "alte Stand" angezeigt wird.
Lange war ich auf der Spur des Rätsels Lösung.

Es ist kein Fehler im Webspace, der Datenbank, der Verlinkung oder gar der Datei.

Hintergrund ist, dass Google selbst diese Verlinkung und die Daten beim ersten Zugriff in einen internen Puffer/Cache(Speicher) ablegt, auf dem man selber keinen Zugriff hat. Auf eben diesen Cache wird immer wider bei Linkaufruf zugegriffen, unabhängig davon, ob sich die kml in ihrem Inhalt ändert oder nicht.

Man kann diesen Cachezugriff allerdings mit einem simplen Trick umgehen, indem man einfach folgenden String beim kml Aufruf innerhalb des Scripts hinzufügt:

......kml"+"?"+Math.random()));

So wird dem Browser und somit google vorgegaukelt, dass es sich um eine "neue" Datei handelt und diese wird dann auch entsprechend behandelt.

Zu sehen ist das Ganze beispielhaft auf meiner Seite http://geosperling.de
--> Unterpunkt "Trackables" oder auch auf "Cache Rallye WM 2013"

Hoffe, das hilft dem einen oder anderen weiter.

Bei Fragen zum kompletten Script oder sonstiges entweder hier oder auch auf meiner Seite (da ich leider hier nicht oft unterwegs bin....)

Gruss,

Sperling
 
Oben