만료

기본적으로 데이터는 링크(Link)를 통해 Google 어스로 한 번만 로드됩니다. KML 데이터를 최신 상태로 유지하기 위해 <href> 요소(링크 또는 아이콘(Icon) 요소에 있음)에서 로드한 모든 데이터에 onExpirerefreshMode를 지정할 수 있습니다. 기본적으로 HTTP 만료 헤더에서 만료 시간을 지정하지만, 이제 KML NetworkLinkControl에서 expires 시간을 지정할 수도 있습니다. 시간은 XML 일시(XML 스키마 파트 2: 데이터 유형 두 번째 버전 참조)로 표현됩니다. HTTP 헤더와 KML 만료 시간이 모두 지정된 경우 KML 만료 시간이 우선 적용됩니다.

예제 1: HTTP 서버 만료 시간을 사용한 만료

이 예제는 설명을 위한 용도로만 제공되며, onExpirerefreshMode를 설정하는 아이콘이 포함된 지면 오버레이(GroundOverlay)를 보여줍니다. 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 만료 시간을 사용한 예제

다음 예제는 임의로 선택한 좌표에 위치표시(Placemark)를 전달합니다. 이 예제에는 onExpirerefreshMode가 있는 링크가 포함되어 있습니다. 이 경우 새로운 KML <expires> 요소를 사용하여 만료 날짜/시간이 Python 스크립트에 지정됩니다. 이 KML 만료 시간은 HTTP 헤더에 지정된 모든 시간보다 우선 적용됩니다.

<href> 및 <refreshMode> 요소가 있는 링크를 포함한 KML 네트워크 링크(NetworkLink)는 다음과 같습니다.

<?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>

만료 시간을 [now + 11 seconds]로 설정하고 위치표시의 좌표를 새로고침하는 Python 스크립트는 다음과 같습니다.

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

맨위로