NetworkLink を介して読み込んだデータを段階的に変更するには、NetworkLinkControl の子要素である Update 要素を使用します。Update には、任意の数の Change 要素、Create 要素、Delete 要素を組み込めます。各要素は指定した順序で処理されます。
下記の図は、イベントの順序を説明したものです。
- NetworkLink で「元の」KML ファイルを Google Earth に読み込ませます。後で更新する予定の要素は、最初に指定するときに id を明示的に定義しておく必要があります。この id は、ファイル内で一意である必要があります。
- 前の手順で読み込んだ KML オブジェクトに対する更新(Change、Create、Delete の任意の組み合わせ)が含まれている 2 番目の KML ファイルを、別の NetworkLink で読み込みます。この更新ファイルには、元の KML データを識別する 2 つの参照が指定されています。
- Google Earth 内でオブジェクトを特定するために、Update 要素は targetHref 要素を使用して、変更するオブジェクトを定義した元のファイルを識別します。変更するオブジェクトや、新しいオブジェクトのコンテナを識別するために、Change、Create、Delete の各要素には、これらのオブジェクトの id を参照する targetId 属性が指定されます。
変更例
NetworkLink と KML データ ファイルの一連のサンプルを次に示します。サンプルを実行する方法は次のとおりです:
- Google Earth に Point-load.kml ファイルを読み込ませます。このファイルには、2 つのポイントが含まれている元のデータ ファイル(Point.kml)を読み込む NetworkLink が組み込まれています。
- Google Earth に Update-load.kml ファイルを読み込ませます。このファイルには、更新データ(point123 の新しい名前)が含まれているファイルを読み込む 2 番目の NetworkLink が組み込まれています。
最初のファイルには、2 つのポイントが含まれているデータ ファイルを読み込む NetworkLink が組み込まれています。これらのポイントを使用する目印には id が割り当てられています。3 番目のファイルには別の NetworkLink が含まれています。この NetworkLink によって、更新ファイルが追加されます。Change 要素は、point123 の目印の名前を変更します。
この例では 4 つのファイルが使用されています。最初のファイルは Point-load.kml です。このファイルには、元のデータ ファイル(Point.kml)を読み込む NetworkLink が含まれています。
<?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>
次のファイルは Point.kml です。このファイルには、元のデータ(2 つのポイント)が含まれています。「point123」という id を持つポイントが変更の対象となります。
<?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>
次は、2 番目の NetworkLink ファイル(Update-load.kml)です。このファイルは、更新情報が含まれているファイルを読み込みます。
<?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>
最後は、更新情報が含まれている KML ファイル(NetworkLinkControl-Update.kml)です。
<?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>