תוקף הרישיון

כברירת מחדל, נתונים נטענים רק פעם אחת על ידי קישורים ל-Google Earth. כדי למנוע התיישנות של נתוני KML, ניתן לציין refreshMode ב-onExpire לכל הנתונים שנטענים על ידי רכיב <href> (ברכיב קישור או רכיב סמל). כברירת מחדל, כותרות התפוגה של ה-HTTP מציינות את מועד התפוגה. אפשר גם לציין זמן פקיעת תוקף ב-KML NetworkLinkControl. השעה מבוטאת כתאריך XML. (ראו סכימת XML חלק 2: סוגי נתונים מהדורה שנייה). אם צוינו כותרות HTTP וזמני תפוגה של KML, זמן התפוגה של KML מקבל עדיפות.

דוגמה 1: תפוגה באמצעות זמן התפוגה של שרת HTTP

זוהי דוגמה בלבד. הוא מציג שכבת-על עם סמל שמגדיר refreshMode ל-onExpire. מכיוון שלא הוגדר זמן תפוגה של KML, בדוגמה הזו נעשה שימוש בזמן התפוגה של שרת ה-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>

דוגמה 2: דוגמה עם זמן תפוגה של KML

הדוגמה הבאה מספקת סמן בקואורדינטות שנבחרו באופן אקראי. בדוגמה הזו מופיע קישור עם refreshMode: onExpire. במקרה כזה, התאריך/שעה של התפוגה מוגדרים (בסקריפט של Python) באמצעות רכיב ה-KML החדש <expires>. מועד התפוגה של ה-KML מקבל עדיפות על פני כל פרק זמן שהיה מוגדר בכותרות ה-HTTP.

הנה קישור Network KML המכיל את הקישור עם האלמנטים <href> ו-<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>

זה הסקריפט של Python שמגדיר זמן תפוגה [now + 11 שניות] ומרענן את הקואורדינטות של הסמן:

#!/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
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>'

חזרה למעלה