Aby stopniowo modyfikować dane ładowane przez NetworkLink, użyj elementu Update, który jest elementem podrzędnym elementu NetworkLinkControl. Aktualizacja może zawierać dowolną liczbę elementów Change, Create i Delete, które są przetwarzane w określonej kolejności.
Ilustracja poniżej przedstawia sekwencję zdarzeń.
![](https://developers.google.cn/static/kml/documentation/images/update.gif?authuser=3&hl=pl)
- NetworkLink wczytuje do Google Earth oryginalny plik KML. Element, który chcesz później zaktualizować, musi mieć jawny identyfikator na początku. Identyfikatory muszą być niepowtarzalne w obrębie danego pliku.
- Kolejny NetworkLink ładuje drugi plik KML zawierający aktualizacje (dowolną kombinację zmian, tworzenia i usuwania) do wczytanych obiektów KML. Plik aktualizacji zawiera dwa odniesienia do oryginalnych danych KML:
- Aby zlokalizować obiekty w Google Earth, element Update używa elementu targetHref do identyfikowania oryginalnego pliku, który definiuje obiekty do zmodyfikowania. Aby zidentyfikować obiekty, które mają zostać zmodyfikowane, lub kontener na nowe obiekty, elementy Change, Create i Delete(Zmień, Utwórz i Usuń) zawierają atrybut targetId, który odwołuje się do id tych obiektów.
Przykład zmiany
Przykład poniżej pokazuje zestaw przykładowych plików NetworkLink i KML. Aby uruchomić przykład:
- Załaduj plik Point-load.json do Google Earth. Ten plik zawiera atrybut NetworkLink, który wczytuje pierwotny plik danych zawierający 2 punkty (Point.json).
- Wczytaj plik Update-load.json do Google Earth. Ten plik zawiera drugi link NetworkLink, który wczytuje plik zawierający dane aktualizacji (nowa nazwa punkt123).
Pierwszy plik zawiera atrybut NetworkLink, który wczytuje plik danych zawierający 2 punkty. Oznaczenia miejsc zawierające te punkty mają przypisane identyfikatory. Trzeci plik zawiera inny element NetworkLink, który dodaje plik Update. Element Change modyfikuje nazwę oznaczenia miejsca point123.
Oto 4 pliki używane w tym przykładzie. Po pierwsze, jest to plik Point-load.json zawierający link sieciowy, który wczytuje oryginalny plik danych (Point.json).
<?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>
Oto plik Point.json, który zawiera dane oryginalne (2 punkty). Punkt o identyfikatorze „point123” to punkt, który będziemy modyfikować.
<?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>
Kolejny jest plik NetworkLink (Update-load.json). Ten plik wczytuje plik zawierający informacje o aktualizacji.
<?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>
Na koniec plik KML (NetworkLinkControl-Update.json) zawierający informacje o aktualizacji:
<?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>