我試圖在有人點擊已通過KML加載的地標時添加網絡鏈接。我所做的是將事件處理程序附加到全球,並檢查用戶是否單擊了地標。將網絡鏈接添加到Google地球失敗
在html上有一個按鈕,當點擊時,點擊時從谷歌地球上移除網絡鏈接(請參閱trackRemoval)。第一次點擊地標時,一切似乎都奏效。
問題是當第二次單擊地標時(刪除網絡鏈接後),createNetworkLink調用失敗。附件是相關的代碼片段。
有人可以看到我在做什麼錯嗎?
var ge = new Array(2);
function clickHandler(event) {
if (event.getTarget().getType() == 'KmlPlacemark') {
event.preventDefault();
var placemark = event.getTarget();
var device = placemark.getName();
var networkLink = ge[0].createNetworkLink(device + "link");
var link = ge[0].createLink("");
networkLink.setDescription("Vechicle view for" + device);
networkLink.setName("Track for " + device);
networkLink.setFlyToView(true);
link.setHref("http://x.x.x.x/blah/blah.kml");
link.setRefreshMode(ge[0].REFRESH_ON_INTERVAL);
link.setRefreshInterval(60);
networkLink.setLink(link);
ge[0].getGlobe().getFeatures().appendChild(networkLink);
}
}
function initgeaor(instance) {
google.earth.addEventListener(instance.getGlobe(), 'click', clickHandler);
}
function trackRemoval() {
var device = this.name;
var networklink = ge[0].getElementById(device + "link");
ge[0].getGlobe().getFeatures().removeChild(networklink);
}