Pour modifier de manière incrémentielle des données chargées sur un objet LinkLink, utilisez l'élément Update qui est un enfant de NetworkLinkControl. La mise à jour peut contenir un nombre illimité d'éléments "Modifier", "Créer" et "Supprimer", qui sont traités dans l'ordre.
La figure ci-dessous illustre la séquence d'événements.
![](https://developers.google.cn/static/kml/documentation/images/update.gif?authuser=19&hl=fr)
- Un lien réseau charge le fichier KML "d'origine" dans Google Earth. Un élément qui sera mis à jour ultérieurement doit comporter un id explicite lors de sa première spécification. Les ids [identifiant] doivent être uniques au sein d'un fichier donné.
- Un autre objet NetworkLink charge un second fichier KML contenant les mises à jour (combinaison de Change, Create et Delete) sur le ou les objets KML déjà chargés. Le fichier de mise à jour contient deux références permettant d'identifier les données KML d'origine:
- Pour localiser les objets dans Google Earth, l'élément Update utilise l'élément targetHref pour identifier le fichier d'origine qui a défini les objets à modifier. Pour identifier le ou les objets à modifier ou le conteneur de nouveaux objets, les éléments "Change", "Create" et "Delete" contiennent un attribut targetId qui référence les id de ces objets.
Modifier l'exemple
L'exemple suivant présente un ensemble d'exemples de liens réseau et de fichiers de données KML. Pour exécuter l'exemple, saisissez la commande suivante :
- Chargez le fichier Point-load.kml dans Google Earth. Ce fichier contient le lien réseau qui charge le fichier de données d'origine, qui contient deux points (Point.kml).
- Chargez le fichier Update-load.kml dans Google Earth. Ce fichier contient le second NetworkLink, qui charge le fichier contenant les données de mise à jour (nouveau nom de point123).
Le premier contient le lien réseau qui charge le fichier de données, qui comporte deux points. Des identifiants sont attribués aux repères contenant ces points. Le troisième fichier contient un autre objet NetworkLink, qui ajoute le fichier de mise à jour. L'élément "Change" modifie le nom du repère du point point123.
Voici les quatre fichiers utilisés dans cet exemple. Tout d'abord, il s'agit du fichier Point-load.kml, qui contient le lien réseau qui charge le fichier de données d'origine (Point.kml).
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLink>
<name>Loads Point.kml</name>
<Link>
<href>http://developers.google.com/kml/documentation/Point.kml</href>
</Link>
</NetworkLink>
</kml>
Voici le fichier Point.kml, qui contient les données d'origine (deux points). Le point associé à l'ID "point123" est celui que nous allons modifier.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark id="pm123">
<name>point123</name>
<Point> <coordinates>-95.44,40.42,0</coordinates> </Point>
</Placemark> <Placemark id="pm456"> <name>point456</name>
<Point> <coordinates>-95.43,40.42,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
Le second fichier NetworkLink (Update-load.kml) Ce fichier charge le fichier contenant les informations de mise à jour.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLink>
<name>Update</name>
<Link>
<href>http://developers.google.com/kml/documentation/NetworkLinkControl-Update.kml</href></Link> </NetworkLink>
</kml>
Enfin, voici le fichier KML (NetworkLinkControl-Update.kml) qui contient les informations de mise à jour:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLinkControl>
<Update>
<targetHref>http://developers.google.com/kml/documentation/Point.kml</targetHref>
<Change>
<Placemark targetId="pm123"> <name>Name changed by Update Change</name>
<!-- coordinates remain the same -->
</Placemark>
</Change> </Update>
</NetworkLinkControl>
</kml>