2014-03-05 45 views
0

我有一個包含嵌入式瀏覽器窗口的應用程序。刪除動態創建的kmlLayer

我想讓我的應用程序創建一個kmlLayer。我可以通過以下方式進行此操作:

function addKmlLayer(kmlURL) { 
    var kmlLayer = new google.maps.KmlLayer({ url: kmlURL }); 
    kmlLayer.setMap(my_map); 
} 

我將允許我的用戶添加幾個kmlLayers。

我也知道我可以通過使用kmlLayer.setMap(null)來移除圖層。

如何找到我以前的kmlLayer將其設置爲null?有沒有方法來識別kmlLayer(ID,名稱等)?

回答

1

一種選擇是一個全球性的參考保持到按KmlLayer

var kmlLayer = null; 
function addKmlLayer(kmlURL) { 
    kmlLayer = new google.maps.KmlLayer({ url: kmlURL }); 
    kmlLayer.setMap(my_map); 
} 

然後將其隱藏,這將工作:

kmlLayer.setMap(null); 

可能想要做的:

if ((kmlLayer != null) && kmlLayer.setMap) kmlLayer.setMap(null); 
+0

不幸,我允許用戶選擇幾個kml文件來顯示,並且不需要同時添加。 – user3384141

+0

因此,使用一個數組作爲kmlLayer ...(並將其添加到支持您的問題的代碼中) – geocodezip