جدول المحتويات
- المقدمة
- الطوابع الزمنية وبيانات نظام تحديد المواقع العالمي (GPS)
- الفترات الزمنية
- تحريك نموذج
- كيفية تحديد الوقت
- الوقت مع AbstractViews
- مثال: عرض حركة نقطة على طول مسار
- إخفاء العناصر الفرعية في الصورة المتحركة
- مثال: تحريك تراكبات الأرض
مقدمة
يمكن أن تحتوي أية ميزة في KML على بيانات وقت مرتبطة بها. وترتبط بيانات الوقت هذه بقصر مستوى رؤية مجموعة البيانات على فترة زمنية معينة أو نقطة زمنية معينة. على الرغم من جلب مجموعة البيانات الكاملة عند تحميل ملف KML، يتحكم شريط تمرير الوقت في واجهة مستخدم Google Earth في أجزاء البيانات المرئية.
يحتوي ملف KML على عنصرين زمنيين مشتقان من TimePrimitive:
- الطابع الزمني - يحدد لحظة واحدة من الوقت لميزة معينة
- TimeSpan - لتحديد وقت <start> ووقت END_END لميزة معينة
يتم نسخ هذه العناصر أيضًا في مساحة الاسم لإضافة Google، كما يلي:
- gx:الطابع الزمني
- gx:TimeSpan
ويسمح ذلك بإدراجها كعناصر ثانوية لعناصر AbstractView. تعرّف على مزيد من المعلومات في قسم الوقت باستخدام AbstractViews أدناه.
عندما يفتح برنامج Google Earth ملف KML يحتوي على ميزة بها عنصر TimePrimitive، فإنه يعرض شريط تمرير الوقت. (يحدد برنامج Google Earth وحدتي البدء والانتهاء تلقائيًا لشريط تمرير الوقت استنادًا إلى أقدم الأوقات وأحدثها في ميزات KML في ملف معين.) وباستخدام شريط التمرير وزر التشغيل، يمكن للمستخدم "تشغيل" التسلسل بالكامل أو تحديد فترات زمنية فردية للعرض.
لتمكين شريط تمرير الوقت في Google Earth، انتقل إلى عرض > إظهار الوقت، وحدد تلقائيًا أو دائمًا. (الإعداد الافتراضي هو تلقائيًا.) تفترض هذه النماذج أن خيار "تقييد الوقت للمجلد المحدد حاليًا" تم إيقافه (الإعداد الافتراضي).
الطوابع الزمنية وبيانات نظام تحديد المواقع العالمي (GPS)
وعادة ما يكون الطابع الزمني مرتبطًا بعلامة موضعية نقطة. يؤدي عرض رمز العلامة الموضعية لفترة وجيزة في كل موضع على طول المسار إلى التأثير في تحريك العلامة الموضعية. ويعد هذا الأسلوب مفيدًا على وجه الخصوص في إنشاء عروض KML للبيانات التي يتم استيرادها من جهاز تتبع GPS. للحصول على أفضل تأثير، يجب استخدام الطوابع الزمنية لمجموعة بيانات معينة على فترات منتظمة.
يتم استخدام الطوابع الزمنية عادةً لمجموعات البيانات الخفيفة التي يتم عرضها في مواقع متعددة (على سبيل المثال، العلامات الموضعية التي تتحرك على طول المسار). وفي مثل هذه الحالات، يتم غالبًا عرض عناصر متعددة في الوقت نفسه الذي تظهر به في مواقع مختلفة في أوقات مختلفة. يحتوي شريط تمرير وقت واجهة مستخدم Google Earth على نافذة زمنية تحدد "شريحة" في شريط تمرير الوقت وتتحرك من بداية الفترة الزمنية إلى نهايتها.
وباستخدام هذا الأسلوب، وضعت المدرسة الألمانية الأوروبية في سنغافورة علامة على سمكة قرش حوت، أُطلق عليها اسم "شرودر" بمودة، ثم استخدمت جهاز نظام تحديد المواقع العالمي (GPS) ثم اتبعت تقدم القرش عبر المحيط الهندي نحو قارة أفريقيا على مدى أشهر. يمكن للمشاهدين المهتمين مشاهدة تقدم شرودر باستخدام Google Earth لعرض ملفات KMZ المنشورة على موقع مجموعة البحث على الويب.
في ملف KML هذا، يعرض المسار الأحمر رحلات شرودر إلى أن يفقد الاتصال بالفريق. تتحرك النقاط الصفراء (رموز العلامة الموضعية) على طول هذا المسار وفقًا للمخطط الزمني الموضح أعلى الشاشة. الأسهم الزرقاء هي جزء من تراكب الأرض الذي يعرض اتجاه أنماط الموجة. ويعتقد الباحثون أن التغيير المفاجئ في الاتجاه تأثر بأشكال الموجة، التي وجهت تدفق العوالق التي كانت مصدره الغذائي الرئيسي.
في هذا المثال، تحتوي العلامات الموضعية للنقطة على العنصر <TimeStamp>. لا تحتوي السلاسل الخطية باللون الأحمر وGroundOverlay الأزرق على عناصر وقت مرتبطة بها (وهي موجودة دائمًا).
whale_shark.kml (مستخدم بإذن من Team Seeadlerpost، المدرسة الألمانية الأوروبية في سنغافورة)الوقت المحدد
لعرض المضلعات وتراكبات الصور التي تنتقل على الفور من التالي إلى التالي، يمكنك تحديد بداية الفترة الزمنية ونهايتها باستخدام الكائن TimeSpan. عادة ما يستخدم هذا الأسلوب لعرض التغييرات في المضلعات والصور مثل التراكبات الأرضية - على سبيل المثال، لإظهار المسار المتراجع للأنهار الجليدية، وانتشار الرماد البركاني، ومدى جهود قطع الأشجار على مر السنين.
يتم استخدام TimeSpans في الحالات التي يتم فيها عرض ميزة واحدة فقط في وقت معين، وتريد الانتقال الفوري من صورة إلى الصورة التالية. تأكد من أن قيم TimeSpan متجاورة وغير متداخلة. بالنسبة إلى مجموعات البيانات مع TimeSpans، يتضمن شريط تمرير وقت واجهة مستخدم Google Earth مؤشرًا يتحرك بسلاسة على شريط تمرير الوقت من بداية الفترة الزمنية إلى نهايتها. يُعد الانتقال من ميزة إلى أخرى تغييرًا فوريًا.
أنشأ Brian Flood عرضًا تقديميًا مثيرًا للاهتمام KML يوضح نمو الولايات المتحدة حيث تمت إضافة الولايات إلى الاتحاد. يستخدم ملف KML المعروض هنا عناصر TimeSpan مع نقطة بداية فقط، بحيث تظل حالة (المضلّع) في العرض بعد إضافتها.
us_states.kml (مستخدم بإذن من B فيضان)تحريك نموذج
وخير مثال على استخدام عنصر TimeSpan هو الرسم المتحرك لعين لندن، الذي أنشأته جيمس ستافورد . تستخدم هذه الشاشة نموذجًا لعجلة فيريس العملاقة في عين لندن. تتم الإشارة إلى النموذج في سلسلة من العلامات الموضعية، ويستخدم كل منها تدويرًا متزايدًا مختلفًا للنموذج ووقتًا زمنيًا يشير إلى مدة عرض تلك العلامة الموضعية.
london_eye.kmz (مستخدم بإذن من جيمس ستافورد)كيفية تحديد الوقت
يستند dateTime إلى وقت مخطط XML (اطلع على مخطط مخطط XML 2: الإصدار الثاني من أنواع البيانات). يمكن التعبير عن القيمة كـ yyyy-mm-ddThh:mm:sszzzz، حيث يكون T هو الفاصل بين التاريخ والوقت، وتكون المنطقة الزمنية إما Z (للتوقيت العالمي المنسق) أو zzzzzz، والذي يمثل ±hh:mm بالنسبة إلى UTC. بالإضافة إلى ذلك، يمكن التعبير عن القيمة كتاريخ فقط. راجع العنصر <TimeStamp> في مرجع KML 2.2 للحصول على أمثلة.
الوقت باستخدام AbstractViews
يدعم Google Earth 5.0 مساحة اسم إضافة Google التي تتضمن عناصر <gx:TimeSpan>
و<gx:TimeStamp>
. هذه نُسخ من العنصرين <TimeSpan>
و<TimeStamp>
ويمكن استخدامها لإضافة معلومات الوقت إلى العناصر <LookAt>
و<Camera>
.
يؤثر إدراج معلومات الوقت في AbstractViews في الميزات التي يتم عرضها وضوء الشمس والصور السابقة. يؤدي استخدام <gx:TimeSpan>
أو <gx:TimeStamp>
في AbstractView إلى تمكين الانتقال إلى موقع محدد في الفضاء والوقت في Google Earth.
بعد تحديد الوقت، يستمر Google Earth في استخدام ذلك الوقت عند تحديد الصور والميزات وضوء الشمس التي يتم عرضها، حتى يتم تحديد وقت آخر. لا يدعم KML مفهوم "الآن"، لذا للرجوع إلى الوقت الحالي في 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-prefixed قد لا تكون متوافقة مع جميع المتصفحات الجغرافية. ويتم دعمه من خلال Google Earth 5.0.
مثال
abstractviews_timeprimitive_example.kml<?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>
مثال: عرض حركة نقطة على طول مسار
يوضح المثال التالي استخدام عنصر الطابع الزمني لعرض حركة علامة موضعية على طول المسار. تتم إضافة عينات للطوابع الزمنية إلى حد كبير، بحيث يتحرك رمز العلامة الموضعية على طول المسار عند تشغيل ملف KML.
TimeStamp_example.kml<?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 لكل شهر، لذلك يمكنك تشغيل الصورة المتحركة ومشاهدة كيفية تغيّر المشهد في المواسم. في ما يلي مقتطف شفرة يعرض الأشهر الثلاثة الأولى من السنة:
<?xml version="1.0" encoding="UTF-8"?>TimeSpan_example.kml (بيانات مقدمة من وكالة NASA)
<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>
إليك لقطة شاشة لهذا المثال: