انقضاء

به‌طور پیش‌فرض، داده‌ها فقط یک بار توسط Links در Google Earth بارگیری می‌شوند. برای جلوگیری از کهنه شدن داده‌های KML، می‌توانید برای هر داده‌ای که توسط عنصر <href> بارگیری می‌شود (در یک عنصر پیوند یا نماد) یک refreshMode از oneExpire تعیین کنید. به طور پیش فرض، هدر انقضای HTTP زمان انقضا را مشخص می کند. همچنین اکنون می توانید زمان انقضا را در KML NetworkLinkControl مشخص کنید. زمان به‌عنوان یک dateTime XML بیان می‌شود (به طرح XML بخش 2: انواع داده‌ها نسخه دوم مراجعه کنید). اگر هر دو هدر HTTP و زمان انقضای KML مشخص شده باشند، زمان انقضای KML اولویت دارد.

مثال 1: انقضا با استفاده از زمان انقضای سرور HTTP

این مثال فقط برای توضیح است. یک GroundOverlay با نمادی را نشان می دهد که حالت رفرش را روی oneExpire تنظیم می کند. از آنجایی که هیچ زمان انقضای 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 است . در این مورد، تاریخ/زمان انقضا (در یک اسکریپت پایتون) با استفاده از عنصر جدید KML <expires> مشخص می شود. این زمان انقضای KML بر هر زمانی که ممکن است در هدرهای HTTP مشخص شده باشد اولویت دارد.

در اینجا پیوند شبکه 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>

این اسکریپت پایتون است که زمان انقضا [ اکنون + 11 ثانیه] را تنظیم می کند و مختصات Placemark را تازه می کند:

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

بازگشت به بالا