Zeit und Animation

Inhalt

Einführung

Jedem Element in KML können Zeitdaten zugeordnet werden. Dadurch wird die Sichtbarkeit des Datensatzes auf einen bestimmten Zeitraum oder Zeitpunkt beschränkt. Obwohl der gesamte Datensatz beim Laden der KML-Datei abgerufen wird, steuert der Zeitschieberegler in der Google Earth-Benutzeroberfläche, welche Teile der Daten sichtbar sind.

KML enthält zwei Zeitelemente, die von TimePrimitive abgeleitet werden:

  • TimeStamp: Gibt einen einzelnen Zeitpunkt für ein bestimmtes Merkmal an.
  • TimeSpan: gibt eine <begin>- und <end>-Zeit für ein bestimmtes Merkmal an.

Diese Elemente werden auch wie folgt in den Namespace der Google-Erweiterung kopiert:

  • gx:Zeitstempel
  • gx:Zeitspanne

Dadurch können sie als ChildView-Elemente untergeordnet werden. Weitere Informationen finden Sie unten im Abschnitt Zeit mit abstrakten Ansichten.

Wenn Google Earth eine KML-Datei öffnet, die ein Element mit einem TimePrimitive-Element enthält, wird ein Zeitschieberegler angezeigt. Google Earth wählt die Anfangs- und Endeinheiten für den Zeitschieberegler automatisch anhand des frühesten und letzten Zeitpunkts aus, den die KML-Elemente in einer bestimmten Datei gefunden haben. Mit dem Schieberegler und der Wiedergabeschaltfläche kann der Nutzer die gesamte Sequenz abspielen oder einzelne Zeiträume für die Anzeige auswählen.

Wenn Sie den Zeitschieberegler in Google Earth aktivieren möchten, gehen Sie zu „Ansicht“ > „Zeit anzeigen“ und wählen Sie Automatisch oder Immer aus. Die Standardeinstellung ist Automatisch. Bei diesen Beispielen wird davon ausgegangen, dass die Option „Zeit auf derzeit ausgewählten Ordner beschränken“ deaktiviert ist (Standardeinstellung).

Zeitstempel und GPS-Daten

Ein Zeitstempel wird normalerweise einer Ortsmarkierung zugeordnet. Wenn Sie das Ortsmarkierungssymbol an jeder Position entlang eines Pfads kurz einblenden, wird die Ortsmarkierung animiert. Diese Technik ist besonders hilfreich bei der Erstellung von KML-Daten, die aus einem GPS-Tracking-Gerät importiert wurden. Die besten Ergebnisse erzielen Sie, wenn die TimeStamps für einen bestimmten Datenpool in regelmäßigen Abständen erstellt werden.

Zeitstempel werden normalerweise für einfache Datensätze verwendet, die an mehreren Stellen zu sehen sind, z. B. auf Ortsmarkierungen entlang eines Pfads. In solchen Fällen werden oft mehrere Elemente gleichzeitig angezeigt, da sie zu verschiedenen Zeiten an unterschiedlichen Stellen angezeigt werden. Der Zeitschieberegler für die Google Earth-Benutzeroberfläche enthält ein Zeitfenster, in dem ein Segment des Zeitschiebereglers ausgewählt wird und sich von Anfang bis Ende des Zeitraums bewegt.

Mit dieser Technik getaggte die Deutsche Europa-Schule in Singapur einen Walhai, der liebevoll „Schroeder“ mit einem GPS-Gerät heißt, und beobachtete dann den Weg des Hais über den Indischen Ozean über einen Zeitraum von Monaten hinweg. Interessierte Zuschauer konnten den Fortschritt von Schroeder mithilfe von Google Earth sehen und sich die KMZ-Dateien ansehen, die auf der Website der Forschungsgruppe gepostet wurden.

In dieser KML-Datei zeigt Schroeder seine Reisen an, bis er den Kontakt zum Team verloren hat. Die gelben Punkte (Ortsmarken) werden auf diesem Pfad gemäß der Zeitachse oben auf dem Bildschirm animiert. Die blauen Pfeile sind Teil eines Boden-Overlays, das die Richtung der Wellenmuster anzeigt. Forscher glauben, dass Schroeders plötzliche Richtungsänderung von den Wellenmustern beeinflusst wurde, die den Fluss des Planktons, der seine Haupternährung darstellte, beeinflussten.

In diesem Beispiel enthalten die Punktmarkierungen das Element <TimeStamp>. Mit dem roten LineString und dem blauen GroundOverlay sind keine Zeitelemente verknüpft (sie sind immer vorhanden).

KML-Symbol whale_shark.kml (mit Genehmigung der Team Seeadlerpost, Deutsche europäische Schule in Singapur)

Zeitspannen

Wenn Sie Polygone und Bild-Overlays einblenden möchten, die sofort von einem Element zum nächsten übergehen, können Sie mit dem TimeSpan-Objekt den Beginn und das Ende eines Zeitraums festlegen. Diese Technik wird in der Regel verwendet, um die Änderungen an Polygonen und Bildern wie Boden-Overlays darzustellen. So können Sie beispielsweise sehen, wie sich die Gletscher, die Ausbreitung von Vulkanasche und die Abholzung im Laufe der Jahre entwickelt haben.

TimeSpans werden verwendet, wenn jeweils nur ein Feature sichtbar ist und Sie einen sofortigen Übergang von einem Bild zum nächsten wünschen. Achten Sie darauf, dass die TimeSpans fortlaufend sind und sich nicht überschneiden. Bei Datensätzen mit TimeSpans enthält der Zeitschieberegler für die Google Earth-Benutzeroberfläche einen Zeiger, der sich nahtlos vom Zeitlimit bis zum Ende des Zeitraums bewegt. Der Wechsel von einer Funktion zur nächsten ist eine sofortige Änderung.

Brian Flood erstellte eine interessante KML-Präsentation, in der das Wachstum der USA mit dem Zusammenschluss von Bundesstaaten der Gewerkschaft gezeigt wird. In der hier gezeigten KML-Datei werden TimeSpan-Objekte nur mit einem Anfangspunkt verwendet, sodass ein Zustand (Polygon) nach dem Hinzufügen in der Anzeige angezeigt wird.

KML-Symbol us_states.kml (wird mit Genehmigung von Brian Flood verwendet)

Modell animieren

Ein weiteres Beispiel für die Verwendung des TimeSpan-Elements ist die Animation des London Eye, erstellt von James Stafford. Auf dem Display ist ein Modell des Riesenrads London Eye zu sehen. Das Modell wird in einer Reihe von Ortsmarkierungen referenziert, wobei jede eine unterschiedliche inkrementelle Rotation für das Modell und einen TimeSpan verwendet, der angibt, wie lange diese Ortsmarkierung angezeigt werden soll.

KML-Symbol london_eye.kmz (wird mit Genehmigung von James Stafford verwendet)

Zeit angeben

Die dateTime basiert auf dem XML-Schema (siehe XML-Schema Teil 2: Datentypen in der zweiten Ausgabe). Als Wert kann yyyy-mm-ddThh:mm:sszzzzzz ausgedrückt werden, wobei T das Trennzeichen zwischen dem Datum und der Uhrzeit ist. Die Zeitzone ist entweder Z (für UTC) oder zzzzzz, was ±hh:mm im Verhältnis zu UTC darstellt. Außerdem kann der Wert nur als Datum ausgedrückt werden. Beispiele finden Sie im Abschnitt <TimeStamp> in der KML 2.2-Referenz.

Zeit für SummaryViews

Google Earth 5.0 unterstützt den Namespace der Google-Erweiterung mit <gx:TimeSpan>- und <gx:TimeStamp>-Elementen. Dies sind Kopien der Elemente <TimeSpan> und <TimeStamp>. Sie können verwendet werden, um den Elementen <LookAt> und <Camera> Zeitinformationen hinzuzufügen.

Die Einbeziehung von Zeitinformationen in abstrakten Ansichten wirkt sich auf die dargestellten Elemente, das Sonnenlicht und historische Bilder aus. Mit <gx:TimeSpan> oder <gx:TimeStamp> innerhalb einer abstrakten Ansicht können Sie zu einem bestimmten Ort im Weltraum und zu einer bestimmten Zeit in Google Earth fliegen.

Sobald eine Zeit festgelegt wurde, verwendet Google Earth diese Zeit bei der Entscheidung, welche Bilder, Funktionen und Sonneneinstrahlung angezeigt werden, bis eine andere Zeit festgelegt ist. KML unterstützt das Konzept „jetzt“ nicht. Wenn Sie in Google Earth zur aktuellen Zeit zurückkehren möchten, geben Sie innerhalb von <gx:TimeStamp> ein <when>2999</when> (oder ein anderes Datum in der Zukunft) an.

Wenn Sie Elemente im Google-Erweiterungs-Namespace verwenden, müssen Sie zuerst dem öffnenden <kml>-Element Ihrer KML-Datei den richtigen Namespace-URI hinzufügen:

<kml xmlns="http://www.opengis.net/kml/2.2"
 xmlns:gx="http://www.google.com/kml/ext/2.2">

Der Namespace „gx-prefix“ wird möglicherweise nicht von allen Geo-Browsern unterstützt. Sie wird von Google Earth 5.0 unterstützt.

Beispiel

KML-Symbol 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>

Beispiel: Bewegung eines Punkts entlang eines Pfads anzeigen

Im folgenden Beispiel wird die Bewegung einer Ortsmarkierung entlang eines Pfads mithilfe eines TimeStamp-Elements dargestellt. Bei TimeStamps erfolgt eine enge Stichprobe, sodass das Ortsmarkierungssymbol entlang des Pfads animiert wird, wenn die KML-Datei wiedergegeben wird.

KML-Symbol TimeStamp_beispiel.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>

Untergeordnete Elemente der Animation ausblenden

Im Allgemeinen ist es bei solchen Beispielen sinnvoll, ein ListStyle-Element in das Dokument aufzunehmen und checkHideChildren anzugeben, damit die einzelnen Ortsmarkierungen nicht in der Listenansicht erscheinen. Der folgende Code enthält dieses zusätzliche Element. Obwohl das Dokument das Stil-Element definiert, muss das Dokument auch auf das ListStyle-Element in einem <styleUrl>-Element verweisen.

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

Beispiel: Boden-Overlays animieren

Um Polygone und Boden-Overlays zu animieren, verwenden Sie normalerweise ein TimeSpan-Element, wie im folgenden Beispiel gezeigt. Diese KML-Datei enthält ein GroundOverlay-Bild für jeden Monat. So können Sie sich die Animation ansehen und beobachten, wie sich die Landschaft je nach Jahreszeit verändert. Hier ist ein Code-Auszug, der die ersten drei Monate des Jahres zeigt:

<?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-Symbol TimeSpan_example.kml (Daten mit freundlicher Genehmigung der NASA)

Hier ein Screenshot dieses Beispiels:

Nach oben