Per modificare in modo incrementale i dati caricati su NetworkLink, utilizza l'elemento Update, che è secondario di NetworkLinkControl. L'aggiornamento può contenere qualsiasi numero di elementi Modifica, Crea ed Elimina, che vengono elaborati in ordine.
La figura seguente illustra la sequenza degli eventi.
- NetworkLink carica il file KML "originale" in Google Earth. Un elemento che verrà aggiornato in un secondo momento deve avere un id esplicito quando viene specificato per la prima volta. Gli id devono essere univoci all'interno di un determinato file.
- Un altro NetworkLink carica un secondo file KML contenente gli aggiornamenti (qualsiasi combinazione di Change, Create ed Delete) agli oggetti KML che sono già stati caricati. Il file di aggiornamento contiene due riferimenti per identificare i dati KML originali:
- Per individuare gli oggetti in Google Earth, l'elemento Update utilizza l'elemento targetHref per identificare il file originale che ha definito gli oggetti da modificare. Per identificare gli oggetti da modificare o il contenitore di nuovi oggetti, gli elementi Modifica, Crea ed Elimina contengono un attributo targetId che fa riferimento agli id di questi oggetti.
Esempio di modifica
L'esempio seguente mostra un insieme di file di dati NetworkLinks e KML di esempio. Per eseguire l'esempio:
- Carica il file Point-load.KML in Google Earth. Questo file contiene il link alla rete che carica il file dei dati originali, che contiene due punti (Point.ZIP).
- Carica il file Update-load.KML in Google Earth. Questo file contiene il secondo NetworkLink, che carica il file contenente i dati Update (nuovo nome per point123).
Il primo file contiene l'elemento NetworkLink che carica il file di dati, che contiene due punti. Ai segnaposto che contengono questi punti sono assegnati ID. Il terzo file contiene un altro NetworkLink, che aggiunge il file di aggiornamento. L'elemento Change modifica il nome del segnaposto per point123.
Ecco i quattro file utilizzati in questo esempio. Innanzitutto, questo è il file Point-load.ZIP, che contiene il NetworkLink che carica il file dei dati originale (Point.ZIP).
<?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>
Di seguito è riportato il file Point.ZIP, che contiene i dati originali (due punti). Il punto con l'ID "point123" corrisponde al punto che modificheremo.
<?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>
Il secondo è il secondo file NetworkLink (Update-load.KML). Questo file carica il file che contiene le informazioni di aggiornamento.
<?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>
Infine, ecco il file KML (NetworkLinkControl-Update.KML) che contiene le informazioni sull'aggiornamento:
<?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>