我相信你可以通過在Kml中使用ID
屬性和NetworkLinkControl
和Update
元素的組合來實現此目的。
MyFlyToRequest.kml文件包含加載數據文件的NetworkLink,其中包含數據,它的flyToView
元素設置爲true。通知過的網絡鏈接也有request
MyFlyToRequest.kml
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLink id="request">
<name>My Fly To Request</name>
<Link>
<href>http://www.yourserver.com/MyFlyTo.kmz</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>2</refreshInterval>
</Link>
<flyToView>1</flyToView>
</NetworkLink>
</kml>
第二個文件,MyFlyTo.kmz的ID,是加載的一個。它有你當前的數據,但是,它也會有一個額外的NetworkLink加載一個新的第三個文件。
MyFlyTo.kmz - 編輯
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="data">
<visibility>1</visibility>
<NetworkLink>
<name>Update MyFlyToRequest</name>
<Link>
<href>http://www.yourserver.com/TurnOffFlyTo.kml</href>
</Link>
</NetworkLink>
<Placemark>
<name>This is flown to once (hopefully)</name>
<Point>
<coordinates>52,0,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
新的第三個文件是TurnOffFlyTo.kml
的關鍵設立的一部分,它包含了NetworkLinkControl
爲目標的request
網絡鏈接在第一MyFlyToRequest.kml文件。它只是設置flyToView
元素爲0
TurnOffFlyTo.kml
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLinkControl>
<Update>
<targetHref>http://www.yourserver.com/MyFlyToRequest.kml#request</targetHref>
<Change>
<NetworkLink id="request">
<!-- turn off the flyto behaviour -->
<flyToView>0</flyToView>
</NetworkLink>
</Change>
</Update>
</NetworkLinkControl>
</kml>
最終文件TurnOnFlyTo.kml
只需再次retoggles的一個FlyTo行爲。
TurnOnFlyTo.kml
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<NetworkLinkControl>
<Update>
<targetHref>http://www.yourserver.com/MyFlyToRequest.kml#request</targetHref>
<Change>
<NetworkLink id="request">
<!-- turn off the flyto behaviour -->
<flyToView>1</flyToView>
</NetworkLink>
</Change>
</Update>
</NetworkLinkControl>
</kml>
的邏輯如下。
- MyFlyToRequest.kml負載MyFlyTo.kml
flyto
被啓用,因此所述視圖移動第一第一標,等等,在MyFlyTo.kml
- 鏈路在MyFlyTo.kml負載TurnOffFlyTo.kml。
Update
in TurnOffFlyTo。kml三個在MyFlyToRequest.kml中禁用flyto
。
- 文件之一,刷新,加載文件中的兩個...
如果需要重新啓用一個FlyTo,您只需將裝載文件四強。如果MyFlyTo.kmz中的數據是由您生成的,那麼在TurnOffFlyTo.kml被調用的地方加載TurnOnFlyTo.kml就是一個簡單的例子。
所有這一切說,這是沒有測試,因此可能無法正常工作,雖然原則上我不明白爲什麼它不會。
如果聽起來像你可能嘗試的東西是一些應該幫助的資源。
NetworkLinkControl中參考
http://code.google.com/apis/kml/documentation/kmlreference.html#networklinkcontrol
使用更新
http://code.google.com/apis/kml/documentation/updates.html
這是一個很酷的想法。我沒有詳細介紹OP的一點是,地標數據經常發生變化。我想我可能不需要TurnOnFlyTo.kml,每次我只是重新加載前3個文件,但我不確定GE將執行的執行順序。 –
另外,MyFlyTo.kmz似乎不是有效的kml文檔。我不認爲你可以有一個和節點。 –
有一個網絡鏈接和文件是好的,有可能是一個錯字,因爲我只是寫在答案中。嘗試將地點標記和鏈接都放在文檔元素中。 – Fraser