สารบัญ
- บทนำ
- การประทับเวลาและข้อมูล GPS
- เวลา
- การสร้างภาพเคลื่อนไหวในโมเดล
- วิธีระบุเวลา
- เวลาที่มีมุมมองนามธรรม
- ตัวอย่าง: แสดงการย้ายจุดไปตามเส้นทาง
- การซ่อนองค์ประกอบย่อยของภาพเคลื่อนไหว
- ตัวอย่าง: ภาพเคลื่อนไหวการแสดงการวางซ้อนพื้นที่
บทนํา
ฟีเจอร์ใดก็ตามใน KML สามารถเชื่อมโยงข้อมูลเวลาได้ ข้อมูลเวลานี้ส่งผลต่อการจํากัดระดับการเข้าถึงของชุดข้อมูลตามช่วงเวลาหรือเวลาที่ระบุ แม้ว่าระบบจะดึงข้อมูลทั้งชุดเมื่อโหลดไฟล์ KML แล้ว แถบเลื่อนเวลาในอินเทอร์เฟซผู้ใช้ Google Earth จะควบคุมว่าข้อมูลส่วนใดจะแสดง
KML มีองค์ประกอบเวลา 2 อย่าง ซึ่งมาจาก TimePrimitive ดังนี้
- TimeStamp - ระบุเวลาสักครู่ของฟีเจอร์หนึ่งๆ
- TimeSpan - ระบุเวลา <begin> และ <end> สําหรับฟีเจอร์นั้นๆ
นอกจากนี้ องค์ประกอบเหล่านี้จะถูกคัดลอกลงในเนมสเปซของส่วนขยาย Google ด้วย
- gx:การประทับเวลา
- gx:TimeSpan
ซึ่งจะช่วยให้รวมองค์ประกอบเหล่านั้นเป็นองค์ประกอบย่อยของ AbstractView ได้ ดูข้อมูลเพิ่มเติมในส่วน Time with AbstractViews ด้านล่าง
เมื่อ Google Earth เปิดไฟล์ KML ที่มีฟีเจอร์พร้อมองค์ประกอบ TimePrimitive ระบบจะแสดงแถบเลื่อนเวลา (Google Earth จะเลือกหน่วยเริ่มต้นและจุดสิ้นสุดสําหรับแถบเลื่อนเวลาโดยอัตโนมัติ โดยอิงจากเวลาล่าสุดและเวลาล่าสุดที่พบในฟีเจอร์ KML ของไฟล์นั้นๆ) เมื่อใช้แถบเลื่อนและปุ่มเล่น ผู้ใช้จะ "เล่น" ลําดับทั้งหมดหรือเลือกแต่ละช่วงเวลาเพื่อแสดงได้
หากต้องการเปิดใช้แถบเลื่อนเวลาใน Google Earth ให้ไปที่มุมมอง > แสดงเวลา แล้วเลือกอัตโนมัติหรือทุกครั้ง (ค่าเริ่มต้นคือโดยอัตโนมัติ) ตัวอย่างเหล่านี้อนุมานว่าตัวเลือก "จํากัดเวลาไปยังโฟลเดอร์ที่เลือกในปัจจุบัน" ปิดอยู่ (ค่าเริ่มต้น)
การประทับเวลาและข้อมูล GPS
โดยทั่วไปการประทับเวลาจะเชื่อมโยงกับหมุดตําแหน่ง การแสดงไอคอนหมุดเป็นเวลาสั้นๆ ที่แต่ละตําแหน่งตลอดเส้นทางมีผลทําให้ภาพเคลื่อนไหวเป็นหมุด เทคนิคนี้มีประโยชน์อย่างยิ่งในการสร้างการแสดงข้อมูล KML ที่นําเข้าจากอุปกรณ์ติดตาม GPS การประทับเวลาที่ดีที่สุดสําหรับชุดข้อมูลที่ระบุควรถ่ายเป็นประจํา เพื่อผลลัพธ์ที่ดีที่สุด
โดยทั่วไปการประทับเวลาจะใช้สําหรับชุดข้อมูลขนาดเล็กที่แสดงในหลายตําแหน่ง (เช่น หมุดเคลื่อนที่ไปตามเส้นทาง) ในกรณีดังกล่าว หลายๆ ฟีเจอร์มักจะอยู่ในมุมมองพร้อมกับแสดงในตําแหน่งที่ต่างกันตามเวลา แถบเลื่อนเวลาในอินเทอร์เฟซของผู้ใช้ Google Earth มีกรอบเวลาที่เลือก "ส่วนแบ่ง" ของแถบเลื่อนเวลา และเลื่อนจากจุดเริ่มต้นไปยังจุดสิ้นสุดของระยะเวลา
เมื่อใช้เทคนิคนี้ โรงเรียนรัฐบาลยุโรปของสิงคโปร์ได้ติดแท็กฉลามวาฬ ชื่อว่า "Schroeder" ด้วยใจรักด้วยอุปกรณ์ GPS จากนั้นติดตามความคืบหน้าของฉลามผ่านมหาสมุทรอินเดียไปยังทวีปแอฟริกาตลอดระยะเวลาหลายเดือน ผู้ชมที่สนใจจะดูความคืบหน้าของ Schroeder ได้โดยใช้ Google Earth เพื่อดูไฟล์ KMZ ที่โพสต์ในเว็บไซต์กลุ่มวิจัย
ในไฟล์ KML นี้ เส้นทางสีแดงจะแสดงการเดินทางของ Schroeder จนกว่าจะสูญเสียการติดต่อกับทีม จุดสีเหลือง (ไอคอนหมุด) จะเคลื่อนไหวไปตามเส้นทางนี้ตามลําดับเวลาที่แสดงที่ด้านบนของหน้าจอ ลูกศรสีน้ําเงินเป็นส่วนหนึ่งของการวางซ้อนพื้นดินที่แสดงทิศทางของรูปแบบคลื่น นักวิจัยเชื่อว่าการเปลี่ยนทิศทางอย่างฉับพลันของ Schroeder ได้รับผลกระทบจากรูปแบบคลื่นที่นําพาแพลนตันซึ่งเป็นต้นกําเนิดหลักของโภชนาการออก
ในตัวอย่างนี้ หมุดตําแหน่งมีองค์ประกอบ <TimeStamp> LineString สีแดงและ GroundOverlay สีน้ําเงินไม่มีองค์ประกอบเวลาที่เกี่ยวข้องกับองค์ประกอบเหล่านั้น (จะมีอยู่เสมอ)
![ไอคอน KML](https://developers-dot-devsite-v2-prod.appspot.com/static/kml/documentation/images/kml_feed_small.png?authuser=9&hl=th)
![](https://developers-dot-devsite-v2-prod.appspot.com/static/kml/documentation/images/schroederPath.gif?authuser=9&hl=th)
แถบเวลา
หากต้องการแสดงรูปหลายเหลี่ยมและการวางซ้อนรูปภาพที่เปลี่ยนจากแบบหนึ่งเป็นถัดไปทันที คุณสามารถระบุจุดเริ่มต้นและจุดสิ้นสุดของระยะเวลาได้โดยใช้ออบเจ็กต์ TimeSpan โดยทั่วไปเทคนิคนี้ใช้เพื่อแสดงการเปลี่ยนแปลงในรูปหลายเหลี่ยมและรูปภาพ เช่น การวางซ้อนพื้นดิน เช่น เพื่อแสดงเส้นทางการถดถอยของธารน้ําแข็ง เถ้าภูเขาไฟภูเขาไฟ และขอบเขตของการตัดไม้ในช่วงหลายปีที่ผ่านมา
มีการใช้ไทม์แลปส์ในกรณีที่มีการดูฟีเจอร์หนึ่งเท่านั้นในช่วงเวลาหนึ่งๆ และคุณต้องการเปลี่ยนจากรูปภาพหนึ่งเป็นรูปภาพถัดไป ตรวจสอบว่าไทม์แลปส์ต่อเนื่องกันและไม่ซ้อนทับกัน สําหรับชุดข้อมูลที่มี TimeSpans แถบเลื่อนเวลาบนอินเทอร์เฟซผู้ใช้ของ Google Earth จะมีตัวชี้ที่เคลื่อนผ่านแถบเลื่อนเวลาได้อย่างราบรื่นตั้งแต่ต้นจนจบช่วงเวลา การเปลี่ยนจากฟีเจอร์หนึ่งไปใช้ฟีเจอร์ถัดไปเป็นการเปลี่ยนแปลงโดยทันที
Brian Flood สร้างงานนําเสนอ KML ที่น่าสนใจซึ่งแสดงถึงการเติบโตของสหรัฐอเมริกาเมื่อมีการเพิ่มรัฐให้กับสหภาพ ไฟล์ KML ที่แสดงที่นี่ใช้ออบเจ็กต์ TimeSpan ที่มีจุดเริ่มต้นเท่านั้น เพื่อให้สถานะ (รูปหลายเหลี่ยม) ยังคงอยู่ในจอแสดงผลเมื่อเพิ่มแล้ว
![ไอคอน KML](https://developers-dot-devsite-v2-prod.appspot.com/static/kml/documentation/images/kml_feed_small.png?authuser=9&hl=th)
![](https://developers-dot-devsite-v2-prod.appspot.com/static/kml/documentation/images/statehood.gif?authuser=9&hl=th)
ภาพเคลื่อนไหวของโมเดล
อีกตัวอย่างหนึ่งของการใช้องค์ประกอบ TimeSpan คือภาพเคลื่อนไหวของลอนดอนอายซึ่งสร้างโดยเจมส์ สตอร์ดอร์ จอแสดงผลนี้ใช้แบบจําลองของชิงช้าสวรรค์ลอนดอนอายขนาดใหญ่ รูปแบบนี้จะมีการอ้างอิงในชุดหมุดแต่ละป้าย โดยใช้การหมุนเพิ่มที่แตกต่างกันสําหรับโมเดลและ TimeSpan ที่จะระบุระยะเวลาที่จะแสดงหมุด
![ไอคอน KML](https://developers-dot-devsite-v2-prod.appspot.com/static/kml/documentation/images/kml_feed_small.png?authuser=9&hl=th)
![](https://developers-dot-devsite-v2-prod.appspot.com/static/kml/documentation/images/londonEye.gif?authuser=9&hl=th)
วิธีระบุเวลา
dateTime จะยึดตามเวลาสคีมา XML (ดูสคีมา XML ส่วนที่ 2: Datatypes Second Edition) ค่าอาจแสดงเป็น yyyy-mm-ddThh:mm:sszzzzzz โดย T เป็นตัวคั่นระหว่างวันที่และเวลา และเขตเวลาจะเป็น Z (สําหรับ UTC) หรือ zzzzzz ซึ่งแสดง ±hh:mm เมื่อเทียบกับ UTC นอกจากนี้ ค่าจะแสดงเป็นวันที่เท่านั้น ดูตัวอย่างองค์ประกอบ <TimeStamp> ในการอ้างอิง KML 2.2
เวลาที่มีมุมมองนามธรรม
Google Earth 5.0 รองรับเนมสเปซของส่วนขยาย Google ซึ่งรวมถึงองค์ประกอบ <gx:TimeSpan>
และ <gx:TimeStamp>
รายการเหล่านี้คือสําเนาขององค์ประกอบ <TimeSpan>
และ <TimeStamp>
และใช้เพื่อเพิ่มข้อมูลเวลาลงในองค์ประกอบ <LookAt>
และ <Camera>
ได้
การรวมข้อมูลเวลาใน AbstractViews ส่งผลต่อฟีเจอร์ที่แสดง แสงแดด และภาพในอดีต การใช้ <gx:TimeSpan>
หรือ <gx:TimeStamp>
ภายใน AbstractView จะช่วยให้บินไปยังตําแหน่งที่เจาะจงในพื้นที่ทํางานได้และใน Google Earth
เมื่อมีการระบุเวลาแล้ว Google Earth จะยังคงใช้เวลาดังกล่าวในการตัดสินใจเลือกภาพ ลักษณะ และแสงแดดที่จะแสดงจนกว่าเวลาอื่นจะได้รับการระบุไว้ KML ไม่รองรับแนวคิด "Now" ดังนั้นหากต้องการย้อนกลับไปยังเวลาปัจจุบันใน Google Earth คุณควรระบุ <when>2999</when>
(หรือวันที่อื่นๆ ในอนาคต) ภายใน <gx:TimeStamp>
เมื่อใช้องค์ประกอบในเนมสเปซของส่วนขยาย Google คุณต้องเพิ่ม URI ของเนมสเปซที่ถูกต้องลงในองค์ประกอบ <kml>
เปิดในไฟล์ KML ก่อน โดยทําดังนี้
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
โปรดทราบว่าเนมสเปซทางภูมิศาสตร์ที่มีคํานําหน้า gx อาจไม่รองรับในบางเบราว์เซอร์ทางภูมิศาสตร์ รองรับโดย Google Earth 5.0
ตัวอย่าง
![ไอคอน KML](https://developers-dot-devsite-v2-prod.appspot.com/static/kml/documentation/images/kml_feed_small.png?authuser=9&hl=th)
<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2"> <Document> <name>Views with Time</name> <open>1</open> <description> In Google Earth, enable historical imagery and sunlight, then click on each placemark to fly to that point in time. </description> <Placemark> <name>Sutro Baths in 1946</name> <Camera> <gx:TimeStamp> <when>1946-07-29T05:00:00-08:00</when> </gx:TimeStamp> <longitude>-122.518172</longitude> <latitude>37.778036</latitude> <altitude>221.0</altitude> <heading>70.0</heading> <tilt>75.0</tilt> </Camera> </Placemark> <Placemark> <name>Palace of Fine Arts in 2002</name> <Camera> <gx:TimeStamp> <when>2002-07-09T19:00:00-08:00</when> </gx:TimeStamp> <longitude>-122.444633</longitude> <latitude>37.801899</latitude> <altitude>139.629438</altitude> <heading>-70.0</heading> <tilt>75</tilt> </Camera> </Placemark> </Document> </kml>
ตัวอย่าง: การแสดงจุดไปตามเส้นทาง
ตัวอย่างต่อไปนี้แสดงโดยใช้องค์ประกอบ TimeStamp เพื่อแสดงการเคลื่อนไหวของหมุดตามเส้นทาง การประทับเวลาต้นแบบจะมีการสุ่มตัวอย่างอย่างมาก ดังนั้น ไอคอนหมุดจะเคลื่อนไหวไปตามเส้นทางเมื่อมีการเล่นไฟล์ KML
![ไอคอน KML](https://developers-dot-devsite-v2-prod.appspot.com/static/kml/documentation/images/kml_feed_small.png?authuser=9&hl=th)
<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Points with TimeStamps</name>
<Style id="paddle-a">
<IconStyle>
<Icon>
<href>http://maps.google.com/mapfiles/kml/paddle/A.png</href>
</Icon>
<hotSpot x="32" y="1" xunits="pixels" yunits="pixels"/>
</IconStyle>
</Style>
<Style id="paddle-b">
<IconStyle>
<Icon>
<href>http://maps.google.com/mapfiles/kml/paddle/B.png</href>
</Icon>
<hotSpot x="32" y="1" xunits="pixels" yunits="pixels"/>
</IconStyle>
</Style>
<Style id="hiker-icon">
<IconStyle>
<Icon>
<href>http://maps.google.com/mapfiles/ms/icons/hiker.png</href>
</Icon>
<hotSpot x="0" y=".5" xunits="fraction" yunits="fraction"/>
</IconStyle>
</Style>
<Style id="check-hide-children">
<ListStyle>
<listItemType>checkHideChildren</listItemType>
</ListStyle>
</Style>
<styleUrl>#check-hide-children</styleUrl>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:05:02Z</when>
</TimeStamp>
<styleUrl>#paddle-a</styleUrl>
<Point>
<coordinates>-122.536226,37.86047,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:05:20Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.536422,37.860303,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:05:43Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.536688,37.860072,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:06:04Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.536923,37.859855,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:06:24Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.537116,37.85961000000001,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:06:46Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.537298,37.859336,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:07:07Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.537469,37.85907,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:07:27Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.537635,37.858822,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:07:51Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.537848,37.858526,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:08:11Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.538044,37.858288,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:08:33Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.538307,37.858064,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:08:56Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.538601,37.857837,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:09:19Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.53887,37.857604,0</coordinates>
</Point>
</Placemark>
<Placemark>
<TimeStamp>
<when>2007-01-14T21:09:45Z</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.539052,37.857262,0</coordinates>
</Point>
</Placemark> . . .
</Document>
</kml>
การซ่อนองค์ประกอบย่อยของภาพเคลื่อนไหว
โดยทั่วไป ในตัวอย่างลักษณะเช่นนี้ ควรใส่เอลิเมนต์ ListStyle ไว้ในเอกสารและระบุ checkHideChildren
เพื่อให้หมุดแต่ละอันไม่ปรากฏในมุมมองรายการ โค้ดต่อไปนี้มีองค์ประกอบเพิ่มเติมนี้ โปรดทราบว่าแม้เอกสารจะกําหนดองค์ประกอบรูปแบบ แต่เอกสารต้องอ้างอิงรายการลักษณะในองค์ประกอบ <styleUrl>
<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Point with TimeStamps</name> . . .
<Style id="check-hide-children"> <!-- define the style for the Document -->
<ListStyle>
<listItemType>checkHideChildren</listItemType>
</ListStyle>
</Style>
<styleUrl>#check-hide-children</styleUrl> <!-- add the style to the Document -->
<Placemark>
<TimeStamp>
<when>2007-01-12</when>
</TimeStamp>
<styleUrl>#hiker-icon</styleUrl>
<Point>
<coordinates>-122.536422,37.860303,0</coordinates>
</Point>
</Placemark> . . .
</Document>
</kml>
ตัวอย่าง: ภาพเคลื่อนไหวการวางซ้อนพื้นที่
หากต้องการสร้างภาพเคลื่อนไหวรูปหลายเหลี่ยมและการวางซ้อนพื้น โดยทั่วไปคุณจะใช้องค์ประกอบ TimeSpan ตามที่แสดงในตัวอย่างต่อไปนี้ ไฟล์ KML นี้มีรูปภาพ GroundOverlay สําหรับแต่ละเดือน คุณจึงเล่นภาพเคลื่อนไหวและดูวิธีการเปลี่ยนแปลงแนวนอนตามฤดูกาลได้ ข้อความที่ตัดตอนมาจากโค้ดซึ่งแสดงช่วง 3 เดือนแรกของปีมีดังนี้
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"> <!-- TimeSpan is recommended for GroundOverlays -->
<Folder>
<name>BMNG-12months</name>
<GroundOverlay>
<name>Blue Marble - Jan</name>
<TimeSpan>
<begin>2004-01</begin>
<end>2004-02</end>
</TimeSpan>
<Icon>
<href>http://mw1.google.com/mw-earth-vectordb/kml-samples/bmng12/files/BMNG-Jan.jpg</href>
</Icon>
<LatLonBox>
<north>90</north>
<south>-90</south>
<east>180</east>
<west>-180</west>
</LatLonBox>
</GroundOverlay>
<GroundOverlay>
<name>Blue Marble - Feb</name>
<TimeSpan>
<begin>2004-02</begin>
<end>2004-03</end>
</TimeSpan>
<Icon>
<href>http://mw1.google.com/mw-earth-vectordb/kml-samples/bmng12/files/BMNG-Feb.jpg</href>
</Icon>
<LatLonBox>
<north>90</north>
<south>-90</south>
<east>180</east>
<west>-180</west>
</LatLonBox>
</GroundOverlay>
<GroundOverlay>
<name>Blue Marble - Mar</name>
<TimeSpan>
<begin>2004-03</begin>
<end>2004-04</end>
</TimeSpan>
<Icon>
<href>http://mw1.google.com/mw-earth-vectordb/kml-samples/bmng12/files/BMNG-Mar.jpg</href>
</Icon>
<LatLonBox>
<north>90</north>
<south>-90</south>
<east>180</east>
<west>-180</west>
</LatLonBox>
</GroundOverlay> . . . </Folder> </kml>
![ไอคอน KML](https://developers-dot-devsite-v2-prod.appspot.com/static/kml/documentation/images/kml_feed_small.png?authuser=9&hl=th)
ต่อไปนี้เป็นการจับภาพหน้าจอของตัวอย่างนี้
![](https://developers-dot-devsite-v2-prod.appspot.com/static/kml/documentation/images/bluemarble.gif?authuser=9&hl=th)