2012-06-03 23 views
0

我正試圖在谷歌地球插件中呈現整個向量堆。我使用parseKml方法創建我的Kml Feature對象並將其存儲在數組中。代碼如下所示。我遍歷了一個從數據庫返回的10,000 kml對象列表,並將其繪製在插件中。如何在谷歌地球中創建自定義圖層,以便我可以將其設置爲可見

// 'currentKml' is a kml string returned from my DB. 
// I iterate over 10,000 of these 
currentKmlObject = ge.parseKml(currentKml); 
currentKmlObject.setStyleSelector(gex.dom.buildStyle({ 
    line: { width: 8, color: '7fff0000' } 
})); 
ge.getFeatures().appendChild(currentKmlObject); 
// After this, I store teh currentKml object in an array so 
// I can manipulate the individual features. 

這似乎工作正常。但是,當我想要立即打開或關閉所有這些功能的可見性時,我必須遍歷數組中的所有這些kml對象,並設置或禁用其各自的可見性。這有點慢。如果我縮小了,我可以慢慢看到每條線消失,大約需要5 - 10秒才能消失或返回。

我想知道是否可以通過添加圖層並添加所有對象作爲此圖層的子節點來加速此過程。這樣我就可以設置整個圖層的可見度。

我一直無法找到如何在代碼中創建新圖層。如果有人能指出適當的方法,那就太好了。我不確定一個圖層是否是加快流程的正確方法。如果您還有任何其他建議可以加快在地圖中一次打開/關閉所有這些對象的過程,那也會非常有幫助。

在此先感謝您的幫助。

回答

0

好的,發現如何自己做到這一點。

在谷歌地球擴展libarary我使用'buildFolder'方法。

var folder = gex.dom.buildFolder({ name: folderName }); 
ge.getFeatures().appendChild(folder); 

現在,當我重複了我的對象數組,我將它們添加到該文件夾​​,而不是使用以下

folder.getFeatures().appendChild(currentKmlObject); 

這樣一來,以後我可以在文件夾中打開知名度和關閉水平使用

folder.setVisibility(false); // or true 

而且這種工作也很好。不會有任何延遲,我可以一次看到所有的物體打開和關閉。它非常快速和高效。

相關問題