Sommaire
- Introduction
- Horodatages et données GPS
- Délais
- Animer un modèle
- Spécifier l'heure
- Temps avec AbstractViews
- Exemple: Mouvement d'un point le long d'un trajet
- Masquer les éléments enfants de l'animation
- Exemple: Animation de superpositions au sol
Présentation
Tout élément géographique KML peut être associé à des données temporelles. Ces données temporelles limitent la visibilité de l'ensemble de données sur une période ou un moment précis. Bien que l'ensemble de données complet soit récupéré lors du chargement du fichier KML, le curseur chronologique dans l'interface utilisateur de Google Earth détermine quelles parties des données sont visibles.
KML comporte deux éléments temporels, dérivés de TimePrimitive:
- TimeStamp : spécifie un moment à un moment précis pour une caractéristique donnée.
- TimeSpan : spécifie les heures <begin> et <end> pour une caractéristique donnée.
Ces éléments sont également copiés dans l'espace de noms de l'extension Google, comme suit:
- gx:TimeStamp
- gx:TimeSpan
Ils peuvent ainsi être inclus en tant qu'enfants des éléments AbstractView. Pour en savoir plus, consultez la section Time with AbstractViews ci-dessous.
Lorsque Google Earth ouvre un fichier KML qui contient un élément géographique avec un élément TimePrimitive, un curseur chronologique s'affiche. (Google Earth sélectionne automatiquement les unités de début et de fin pour le curseur chronologique en fonction des heures les plus anciennes et les plus récentes trouvées dans les éléments géographiques KML d'un fichier particulier.) À l'aide du curseur et du bouton de lecture, l'utilisateur peut "lire" toute la séquence ou sélectionner des périodes individuelles.
Pour activer le curseur chronologique dans Google Earth, accédez à Affichage > Afficher l'heure, puis sélectionnez Automatiquement ou Toujours. (La valeur par défaut est Automatique.) Ces exemples supposent que l'option "Limiter le temps au dossier actuellement sélectionné" est désactivée (par défaut).
Horodatages et données GPS
Un horodatage est généralement associé à un repère de point. L'affichage rapide de l'icône Repère à chaque position le long d'un trajet a pour effet d'animer le repère. Cette technique est particulièrement utile pour créer des affichages KML de données importées à partir d'un appareil de suivi GPS. Pour un résultat optimal, les horodatages d'un ensemble de données donné doivent être pris à intervalles réguliers.
Les horodatages sont généralement utilisés pour des ensembles de données légers affichés à plusieurs endroits (par exemple, des repères se déplaçant sur un trajet). Dans ce cas, plusieurs fonctionnalités sont souvent visibles en même temps, car elles sont affichées à différents endroits et à différents moments. Le curseur chronologique de l'interface utilisateur de Google Earth inclut une fenêtre temporelle qui permet de sélectionner une "tranche" du curseur chronologique et de se déplacer du début à la fin de la période.
Grâce à cette technique, l'École européenne d'Europe de Singapour a marqué un requin-baleine, affectueusement nommé "Schroeder", à l'aide d'un appareil GPS, puis a suivi sa progression dans l'océan Indien vers le continent africain pendant plusieurs mois. Les utilisateurs intéressés pouvaient suivre les progrès de Schroeder en utilisant Google Earth pour consulter les fichiers KMZ publiés sur le site Web du groupe de recherche.
Dans ce fichier KML, le chemin rouge représente les trajets de Schroeder jusqu'à ce qu'il ait perdu le contact avec l'équipe. Les points jaunes (icônes des repères) s'animent le long de ce tracé en fonction de la chronologie affichée en haut de l'écran. Les flèches bleues font partie d'une superposition au sol qui indique la direction des vagues. Les chercheurs pensent que le changement soudain de direction de Schroeder a été affecté par les vagues, qui dirigeaient le flux du plancton, sa principale source de nutrition.
Dans cet exemple, les repères de point contiennent l'élément <TimeStamp>. Les éléments LineString et GroundOverlay bleus ne sont pas associés à des éléments de temps (ils sont toujours présents).
whale_shark.kml (utilisé avec l'autorisation de Team Seeadlerpost, école européenne allemande de Singapour)Périodes
Pour afficher des polygones et des superpositions d'image qui passent instantanément d'un format à un autre, vous pouvez spécifier le début et la fin d'une période à l'aide de l'objet TimeSpan. Cette technique est généralement utilisée pour montrer les changements dans les polygones et les images, comme les superpositions au sol, par exemple, pour montrer le parcours de retrait des glaciers, la propagation des cendres volcaniques et l'étendue des efforts d'abattage sur plusieurs années.
Les plages de temps (TimeSpan) sont utilisées lorsqu'une seule caractéristique est visible à la fois et que vous souhaitez passer instantanément d'une image à une autre. Assurez-vous que les plages de temps sont contiguës et ne se chevauchent pas. Pour les ensembles de données associés à des intervalles de temps, le curseur chronologique de l'interface utilisateur de Google Earth comporte un pointeur qui se déplace de façon fluide entre le début et la fin de la période. La transition d'une fonctionnalité à une autre est une modification instantanée.
Brian Flood a créé une présentation KML intéressante montrant la croissance des États-Unis à mesure que des États ont été ajoutés à l'Union. Le fichier KML présenté ici utilise des objets TimeSpan avec un point de départ uniquement, de sorte qu'un état (polygone) reste affiché une fois qu'il a été ajouté.
us_states.kml (utilisé avec l'autorisation de Brian Flood)Animer un modèle
Un autre exemple d'utilisation de l'élément TimeSpan est l'animation du London Eye, créée par James Stafford. Cette maquette utilise un modèle de la grande roue du London Eye. Le modèle est référencé dans une série de repères, chacun utilisant une rotation incrémentielle différente pour le modèle et un TimeSpan indiquant la durée d'affichage de ce repère.
london_eye.kmz (utilisé avec l'autorisation de James Stafford)Spécifier une heure
L'heure dateTime est basée sur l'heure du schéma XML (voir Partie 2 du schéma XML: Types de données de la deuxième édition). La valeur peut être exprimée sous la forme yyyy-mm-ddThh:mm:sszzzzzz, où T correspond au séparateur entre la date et l'heure, et le fuseau horaire est Z (pour UTC) ou zzzzzz, ce qui représente ±hh:mm par rapport à UTC. De plus, la valeur ne peut être exprimée qu'en tant que date. Consultez l'élément <TimeStamp> dans la référence KML 2.2 pour obtenir des exemples.
Temps avec AbstractView
Google Earth 5.0 est compatible avec l'espace de noms de l'extension Google, qui inclut les éléments <gx:TimeSpan>
et <gx:TimeStamp>
. Il s'agit de copies des éléments <TimeSpan>
et <TimeStamp>
, et peuvent être utilisées pour ajouter des informations temporelles aux éléments <LookAt>
et <Camera>
.
L'inclusion d'informations temporelles dans AbstractViews a une incidence sur les éléments géographiques affichés, la lumière du soleil et les images historiques. L'utilisation de <gx:TimeSpan>
ou <gx:TimeStamp>
dans une vue abstraite permet de survoler un lieu spécifique dans l'espace et le temps dans Google Earth.
Une fois que vous avez spécifié une heure, Google Earth continue à utiliser cette heure pour choisir les images, les éléments géographiques et la lumière du soleil à afficher, jusqu'à ce qu'une autre heure soit précisée. KML ne prend pas en charge le concept de "maintenant". Pour revenir à l'heure actuelle dans Google Earth, vous devez spécifier un <when>2999</when>
(ou toute autre date ultérieure) dans <gx:TimeStamp>
.
Lorsque vous utilisez des éléments dans l'espace de noms de l'extension Google, vous devez d'abord ajouter l'URI d'espace de noms approprié à l'élément <kml>
d'ouverture dans votre fichier KML:
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
Notez que l'espace de noms de l'extension avec préfixe gx peut ne pas être compatible avec tous les navigateurs géographiques. Google Earth 5.0 est compatible.
Exemple
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>
Exemple: Affichage du mouvement d'un point le long d'un trajet
L'exemple suivant illustre l'utilisation d'un élément TimeStamp pour montrer le mouvement d'un repère sur un trajet. Étant donné que les horodatages sont étroitement échantillonnés, l'icône Repère s'anime le long du trajet lors de la lecture du fichier 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>
Masquer les éléments enfants de l'animation
Dans ce cas, il est généralement utile d'inclure un élément ListStyle dans le document et de spécifier checkHideChildren
afin que les repères individuels n'apparaissent pas dans la vue Liste. Le code suivant inclut cet élément supplémentaire. Notez que, même si le document définit l'élément Style, le document doit également référencer le ListStyle dans un élément <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>
Exemple: Animation de superpositions au sol
Pour animer des polygones et des superpositions au sol, vous utiliserez généralement un élément TimeSpan comme illustré dans l'exemple suivant. Ce fichier KML contient une image GroundOverlay pour chaque mois, ce qui vous permet de lancer l'animation et d'observer l'évolution du paysage au fil des saisons. Voici un extrait de code illustrant les trois premiers mois de l'année:
<?xml version="1.0" encoding="UTF-8"?>TimeSpan_example.kml (données fournies par la 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>
Voici une capture d'écran de cet exemple: