זמן ואנימציה

תוכן העניינים

הקדמה

לכל תכונה ב-KML אפשר לשייך נתוני זמן. על נתוני הזמן האלה להגביל את החשיפה של קבוצת הנתונים לתקופות או לנקודות זמן מסוימות. למרות שקבוצת הנתונים המלאה מאוחנת לאחר טעינת קובץ ה-KML, מחוון הזמן בממשק המשתמש של Google Earth קובע אילו חלקים של הנתונים יהיו גלויים.

KML כולל שני אלמנטים הנגזרים מ-TimePrimitive:

  • TimeStamp - מציין רגע מסוים בזמן עבור תכונה מסוימת
  • TimeSpan – מציין זמן <begin> ו-<end> עבור תכונה נתונה

האלמנטים האלה הועתקו גם למרחב השמות של תוסף Google, כמו:

  • gx:TimeStamp
  • gx:TimeSpan

הפעולה הזו מאפשרת לכלול אותם כצאצאים של רכיבי AsstractView. מידע נוסף זמין בקטע זמן עם AbsductViews בהמשך.

כאשר Google Earth פותח קובץ KML שמכיל תכונה עם רכיב TimePrimitive, הוא מציג מחוון זמן. (Google Earth בוחר באופן אוטומטי את יחידות ההתחלה והסיום עבור מחוון הזמן בהתאם לזמנים המוקדמים והמוקדמים ביותר שנמצאו בתכונות KML בקובץ מסוים.) באמצעות פס ההזזה ולחצן ההפעלה, המשתמש יכול "להפעיל" את כל הרצף או לבחור תקופות זמן מסוימות לתצוגה.

כדי להפעיל את מחוון הזמן ב-Google Earth, עוברים אל 'תצוגה' > 'הצגת שעה', ובוחרים באפשרות אוטומטית או תמיד. (ברירת המחדל היא אוטומטית.) הדוגמאות האלה מבוססות על האפשרות שהאפשרות 'הגבלת הזמן לתיקייה שנבחרה' מושבתת (ברירת המחדל).

חותמות זמן ונתוני GPS

חותמת זמן בדרך כלל משויכת לסמן נקודה. הצגת סמל הסמן לזמן קצר בכל מיקום לאורך הנתיב משפיעה על האנימציה של הסמן. טכניקה זו שימושית במיוחד ליצירת תצוגות KML של נתונים המיובאים ממכשיר מעקב GPS. כדי לקבל את ההשפעה הטובה ביותר, יש לצלם את חותמות הזמן של קבוצת נתונים מסוימת במרווחי זמן קבועים.

חותמות זמן משמשות בדרך כלל לערכות נתונים קלות המוצגות במספר מיקומים (לדוגמה, סמנים נעים לאורך נתיב). במקרים כאלה, תכונות מרובות מוצגות בו-זמנית לעיתים קרובות, והן מוצגות במיקומים שונים בזמנים שונים. מחוון הזמן של ממשק המשתמש של Google Earth כולל חלון זמן שבוחר 'פרוסה' של מחוון הזמן ומתחיל מתחילת תקופת הזמן ועד סופה.

בטכניקה הזו, בית הספר האירופאי האירופי סינגפור תייג את כריש לווייתני, שנקרא בחיבה "Schroeder", עם מכשיר GPS. לאחר מכן עקב אחר התקדמותו של הכריש באוקיינוס ההודי לקראת יבשת אפריקה במשך תקופה של חודשים. צופים מעוניינים יכולים לראות את ההתקדמות של שרדר באמצעות Google Earth כדי לצפות בקובצי ה-KMZ שפורסמו באתר של קבוצת המחקר.

בקובץ ה-KML הזה, הנתיב האדום מציג את הנסיעות של שרדר עד שיאבד את הקשר עם הצוות. הנקודות הצהובות (סמלי הסמן) מונפשות לאורך הנתיב, בהתאם לציר הזמן שמוצג בחלק העליון של המסך. החיצים הכחולים הם חלק משכבת-על של קרקע שמראה את כיוון תבניות הגל. החוקרים מאמינים ששינוי הכיוון הפתאומי של שרדר הושפע מדפוסי הגל, שהניע את זרימת הפלנקטון שהיה מקור התזונה העיקרי שלו.

בדוגמה הזו, ה-placeholders של הנקודות מכילים את הרכיב <TimeStamp>. ל-LineString האדום ול-GroundLayer הכחול משויכים רכיבי זמן (הם תמיד מוצגים).

סמל KML whale_shark.KML (בשימוש באישור של Team Seeadlerpost, בית הספר הגרמני לאירופה)

תקופות זמן

כדי להציג פוליגונים ושכבות-על לתמונה שעוברים מיד מפריט לסרטון הבא, אפשר לציין את ההתחלה ואת הסיום של תקופת זמן באמצעות אובייקט TimeSpan. בדרך כלל משתמשים בשיטה הזו כדי להציג את השינויים בפוליגונים ובתמונות כגון שכבות-על של קרקע – לדוגמה, כדי להציג את הנתיב הנסוג של קרחונים, של התפשטות האפר הגעשי ואת היקף מאמצי התיעוד לאורך השנים.

נעשה שימוש ב-TimeSpans במקרים שבהם רק תכונה אחת מוצגת בזמן נתון, וברצונך לבצע מעבר מיידי מתמונה אחת לאחרת. מוודאים שחותמות הזמן רציפות ולא חופפות. עבור מערכי נתונים עם TimeSpans, מחוון הזמן בממשק המשתמש של Google Earth כולל מצביע שנע בצורה חלקה לאורך מחוון הזמן מתחילתה ועד סופה. המעבר מתכונה אחת לאחרת הוא שינוי מיידי.

Brian Flood יצר מצגת KML מעניינת שמראה את הצמיחה של ארצות הברית עם הוספת המדינות לאיחוד. קובץ ה-KML שמוצג כאן משתמש באובייקטים של TimeSpan עם נקודת התחלה בלבד, כך שמצב (מצולע) נשאר בתצוגה לאחר ההוספה.

סמל KML us_states.KML (בשימוש באישור Brian Flood)

אנימציה של מודל

דוגמה נוספת לשימוש ברכיב TimeSpan היא האנימציה של לונדון איי, שנוצרה על ידי James Teamord . בתצוגה הזו נעשה שימוש בדגם של גלגל הענק העצום לונדון איי. יש התייחסות למודל במודל של כל אחד מהסמנים, כאשר כל אחד מהם משתמש בסבב מצטבר שונה עבור המודל וב-TimeSpan, שמציין את משך הזמן להצגת ה-Marker הזה.

סמל KML london_eye.kmz (בשימוש באישור של ג'יימס סטפורד)

איך לציין שעה

dateTime מבוסס על זמן של סכימת XML (מידע נוסף מופיע בקטע XML Schema Part 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>.

הוספה של פרטי זמן ב-AbsstructViews משפיעה על התכונות שמוצגות, אור השמש ותמונות היסטוריות. שימוש ב-<gx:TimeSpan> או ב-<gx:TimeStamp> ב-AbsstructView מאפשר לטוס למיקום ספציפי בחלל ולזמן ב-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 עם קידומת Gx. הוא נתמך על-ידי Google Earth 5.0.

דוגמה

סמל KML srateצפיות_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>

דוגמה: הצגת מעבר של נקודה לאורך נתיב

הדוגמה הבאה מציגה שימוש ברכיב TimeStamp כדי להציג את התנועה של סמן לאורך נתיב. חותמות הזמן מודגשות היטב, לכן סמל הסמן יוצר אנימציה לאורך הנתיב כשמופעל קובץ ה-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 כדי שהסמנים השונים לא יופיעו בתצוגת הרשימה. הקוד הבא כולל את הרכיב הנוסף הזה. לתשומת לבך, אף על פי שהמסמך מגדיר את רכיב הסגנון, המסמך צריך גם להתייחס ל-ListStyle ברכיב <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 זה מכיל תמונת GroundLayer של כל חודש, כך שתוכלו להפעיל את האנימציה ולראות איך הסביבה משתנה בהתאם לעונות. הנה קטע קוד שמראה את שלושת החודשים הראשונים של השנה:

<?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 TimeSpan_example.KML (הנתונים באדיבות נאס"א)

הנה צילום מסך של דוגמה זו:

חזרה למעלה