Domyślnie dane są wczytywane tylko raz przez linki do Google Earth. Aby zapobiec wyświetlaniu nieaktualnych danych KML, możesz określić dla parametru RefreshMode wartość onExpire dla każdego danych ładowanych przez element <href> (w elemencie Link lub Ikona). Domyślnie nagłówki HTTP tracą ważność. Możesz też określić czas wygaśnięcia w pliku KML NetworkLinkControl. Czas jest wyrażony w formacie XML dateTime (zobacz XML Schema Part 2: Datatypes Second Edition). Jeśli określone są zarówno nagłówki HTTP, jak i czas ważności pliku KML, pierwszeństwo ma czas ważności pliku KML.
Przykład 1. Czas wygaśnięcia serwera HTTP
Ten przykład ma charakter poglądowy. Wyświetla ona GroundOverlay z ikoną, która ustawia RefreshMode na wartość onExpire. Ponieważ nie określono czasu ważności pliku KML, w tym przykładzie użyto czasu wygaśnięcia serwera HTTP.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>refreshMode onExpire</name>
<Snippet maxLines="10">
Image automatically reloads according to http
server expiration.
</Snippet>
<GroundOverlay>
<Icon>
<href>http://www.someserver.com/image.jpeg</href>
<refreshMode>onExpire</refreshMode>
</Icon>
<LatLonBox>
<!-- from edit session in earth -->
<!-- The roof of a building in the Presidio -->
<north>37.80385180177469</north>
<east>-122.4558710620651</east>
<south>37.80337403503347</south>
<west>-122.4564295653771</west>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>
Przykład 2: przykład użycia daty ważności pliku KML
Poniższy przykład pokazuje oznaczenie miejsca w losowo wybranych współrzędnych. Ten przykład zawiera link z trybem RefreshMode o wartości onExpire. W takim przypadku datę i godzinę zakończenia określa się w skrypcie Pythona za pomocą nowego elementu KML <expires>. Czas ważności pliku KML ma pierwszeństwo przed czasem podanym w nagłówkach HTTP.
Oto link do pliku KML NetworkLink zawierający elementy <href> i <RefreshMode>:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<NetworkLink>
<Link>
<href>http://dev.someserver.com/cgi-bin/expires.py</href>
<refreshMode>onExpire</refreshMode>
</Link>
</NetworkLink>
</Document>
</kml>
To jest skrypt Pythona, który ustawia czas wygaśnięcia [now + 11 sekund] i odświeża współrzędne oznaczenia miejsca:
#!/usr/bin/python
import random
import time
lat = random.random() * 180. - 90.
lon = random.random() * 360. - 180.
now = time.time()
future = time.gmtime(now + 11)
y = future[0]
mo = future[1]
d = future[2]
h = future[3]
mi = future[4]
s = future[5]
iso8601 = '%04d-%02d-%02dT%02d:%02d:%02dZ' % (y,mo,d,h,mi,s)
print 'Content-type: application/vnd.google-earth.kml+xml'
print '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'
print '<kml xmlns=\"http://www.opengis.net/kml/2.2\">'
# must be child of <kml>
print '<NetworkLinkControl>'
print '<expires>%s</expires>' % iso8601
print '</NetworkLinkControl>'
print '<Placemark>'
print '<name>placemark expires %s</name>' % iso8601
print '<Point>'
print '<coordinates>%f,%f,0</coordinates>' % (lon,lat)
print '</Point>'
print '</Placemark>'
print '</kml>'