Para modificar incrementalmente os dados carregados em um NetworkLink use o elemento Update, que é filho de NetworkLinkControl. Update pode conter qualquer quantidade de elementos Change, Create e Delete, que são processados em ordem.
A figura abaixo ilustra a sequência de eventos.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/kml/documentation/images/update.gif?authuser=5&hl=pt)
- Um elemento NetworkLink carrega o arquivo KML "original" no Google Earth. Um elemento que será atualizado posteriormente precisa ter um código explícito definido quando é especificado pela primeira vez. Os códigos precisam ser exclusivos em determinado arquivo.
- Outro NetworkLink carrega um segundo arquivo KML contendo as atualizações (qualquer combinação de Change, Create e Delete) para os objetos KML que já foram carregados. O arquivo de atualização contém duas referências para identificar os dados KML originais:
- Para localizar os objetos dentro do Google Earth, o elemento Update usa o elemento targetHref para identificar o arquivo original que definiu os objetos a serem modificados. Para identificar os objetos a serem modificados ou o recipiente para novos objetos, os elementos Change, Create e Delete contêm um atributo targetId que faz referência aos códigos desses objetos.
Exemplo de mudança
O exemplo a seguir mostra um conjunto de elementos NetworkLinks e arquivos de dados KML de amostra. Para executar a amostra:
- Carregue o arquivo Point-load.kml no Google Earth. Esse arquivo contém o NetworkLink que carrega o arquivo de dados original, que contém dois pontos (Point.kml).
- Carregue o arquivo Update-load.kml no Google Earth. Esse arquivo contém o segundo NetworkLink, que carrega o arquivo contendo os dados de Update (um novo nome para point123).
O primeiro arquivo contém o NetworkLink que carrega o arquivo de dados contendo dois pontos. Os marcadores que contêm esses pontos recebem códigos. O terceiro arquivo contém outro NetworkLink, que adiciona o arquivo de atualizações. O elemento Change modifica o nome do marcador para point123.
Veja os quatro arquivos usados nesse exemplo. Primeiro, esse é o arquivo Point-load.kml, que contém o NetworkLink que carrega o arquivo de dados original (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>
Este é o arquivo Point.kml, que contém os dados originais (dois pontos). O ponto com o código "point123" é o ponto que modificaremos.
<?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>
Em seguida, está o segundo arquivo de NetworkLinks (Update-load.kml). Esse arquivo carrega o arquivo que contém as informações de Update.
<?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>
E, finalmente, este é o arquivo KML (NetworkLinkControl-Update.kml) que contém as informações de Update:
<?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>