如要逐步修改透過 NetworkLink 載入的資料,請使用 NetworkLinkControl 的子項的 Update 元素。更新作業可包含任意數量的「變更」、「建立」和「刪除」元素,這些元素會按順序處理。
下圖說明事件的順序。
- NetworkLink 會將「原始」KML 檔案載入「Google 地球」。在後續更新的元素中,您需要在第一次指定時明確定義明確的 id。特定檔案中的 id 不得重複。
- 其他 NetworkLink 則會將第二個包含載入更新 (包含變更、建立和刪除的組合) 的 KML 檔案載入已載入的 KML 物件。更新檔案包含兩個參照,用於識別原始 KML 資料:
- 為了在 Google 地球中定位物件,Update 元素會使用 targetHref 元素識別用於定義要修改物件的原始檔案。為了識別要修改的物件或新物件的容器,Change、Create 和 Delete 元素包含參照這些物件的 id 的 targetId 屬性。
變更範例
以下範例顯示 NetworkLinks 和 KML 資料檔案的範例。執行範例:
- 將 Point-load.KML 檔案載入 Google 地球。這個檔案內含的 NetworkLink 會載入原始資料檔案,其中包含兩個點 (Point.KML)。
- 將 Update-load.KML 檔案載入 Google 地球。這個檔案包含第二個 NetworkLink,可載入包含更新資料的檔案 (point123 的新名稱)。
第一個檔案包含的 NetworkLink 會載入資料檔案,其中包含兩個點。包含這些點的地標都有獲派的 ID。第三個檔案包含另一個 NetworkLink,可新增 Update 檔案。Change 元素會修改 point123 的地標名稱。
以下是本範例使用的四個檔案。首先,這是 Point-load.zoom 檔案,其中包含載入原始資料檔案的 NetworkLink (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>
以下的 Point. KML 檔案包含原始資料 (兩個點)。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>
接下來是第二個 NetworkLink 檔案 (Update-load.zoom)。這個檔案會載入包含更新資訊的檔案。
<?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>