Wenn Sie Daten, die über einen NetworkLink geladen werden, inkrementell ändern möchten, verwenden Sie das Update-Element, das einem untergeordneten NetworkLinkControl-Element untergeordnet ist. Eine Aktualisierung kann eine beliebige Anzahl von Änderungs-, Erstellungs- und Löschelementen enthalten, die der Reihe nach verarbeitet werden.
Die Abbildung unten zeigt die Reihenfolge der Ereignisse.
- Ein NetworkLink lädt die ursprüngliche KML-Datei in Google Earth. Für ein Element, das später aktualisiert wird, muss eine explizite id definiert sein, wenn es erstmals angegeben wird. Die IDs müssen in einer bestimmten Datei eindeutig sein.
- Ein anderer NetworkLink lädt eine zweite KML-Datei mit den Aktualisierungen (eine beliebige Kombination aus Ändern, Erstellen und Löschen) für die bereits geladenen KML-Objekte. Die Aktualisierungsdatei enthält zwei Verweise, um die ursprünglichen KML-Daten zu identifizieren:
- Zum Auffinden der Objekte in Google Earth verwendet das Update-Element das Element targetHref, um die ursprüngliche Datei zu identifizieren, die die zu ändernden Objekte definiert hat. Um die zu ändernden Objekte oder den Container für neue Objekte zu identifizieren, enthalten die Elemente zum Ändern, Erstellen und Löschen ein targetId-Attribut, das auf die ids-Objekte verweist.
Beispiel ändern
Das folgende Beispiel zeigt eine Reihe von NetworkLinks- und KML-Datendateien. So führen Sie das Beispiel aus:
- Laden Sie die Datei Point-load.kml in Google Earth. Diese Datei enthält den NetworkLink zum Laden der ursprünglichen Datendatei mit zwei Punkten (Point.kml).
- Laden Sie die Datei Update-load.kml in Google Earth. Diese Datei enthält den zweiten NetworkLink, der die Datei mit den Update-Daten lädt (ein neuer Name für point123).
Die erste Datei enthält den NetworkLink zum Laden der Datendatei mit zwei Punkten. Den Ortsmarken, die diese Punkte enthalten, sind IDs zugewiesen. Die dritte Datei enthält einen weiteren NetworkLink, der die Update-Datei hinzufügt. Mit dem Element „Ändern“ wird der Name der Ortsmarkierung für point123 geändert.
Hier sind die vier Dateien, die in diesem Beispiel verwendet werden. Dies ist die Datei Point-load.yaml, die den NetworkLink enthält, mit dem die Originaldatei (Point.kml) geladen wird.
<?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>
Hier ist die Datei Point.kml, die die ursprünglichen Daten (2 Punkte) enthält. Wir ändern den Punkt mit der ID „point123“.
<?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>
Als Nächstes kommt die zweite NetworkLink-Datei (Update-load.kml). In dieser Datei wird die Datei mit den Updateinformationen geladen.
<?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>
Hier ist die KML-Datei (NetworkLinkControl-Update.kml), die die Updateinformationen enthält:
<?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>