2013-01-20 63 views
1

我可以記得在舊版本的Gmaps API中,有可能爲自定義覆蓋添加標記並添加或從主地圖中刪除。也有可能做出不同的結果組,並且僅用一個命令來顯示/隱藏它。在新的參考文獻中我找不到它,他們是否已經重新命名了它?Gmaps自定義覆蓋

回答

1

你談論一個GLayer - https://developers.google.com/maps/documentation/javascript/v2/reference#GLayer

它,事實上,已經從V3 API中刪除。

在API v3中,開發人員需要跟蹤其疊加層,並根據需要將其從地圖中添加/刪除。

要做到這一點,最好的方法是保持你的疊加在一個數組(或一個對象),並通過它們循環。

舉例來說,如果你有兩套不同的覆蓋(信息窗口和標誌)的,你可以做這樣的事情:

var overlays = { 
    markers : [], 
    infoWindows : [] 
}; 

    //create a marker and put it in markers 
    var marker = new google.maps.Marker(); 
    overlays.markers.push(marker); 

    //create an infoWindow and put it in infoWindows 
    var infoWindow = new google.maps.InfoWindow(); 
    overlays.infoWindows.push(infoWindow); 

    //remove all infoWindows from the map 
    for(var i=0;i<overlays.infoWindows.length;i++) { 
     overlays.infoWindows[i].setMap(null); 
    } 

    //remove all markers from the map 
    for(var i=0;i<overlays.markers.length;i++) { 
     overlays.markers[i].setMap(null); 
    } 

這是一個簡單的例子,但希望你的想法:在添加,管理和刪除v3中的「組」是由開發人員決定的。

+0

以及如何添加/刪除/從地圖? – BASILIO

+0

對不起,還沒有讀得太好。此外FOR循環,我有希望,我可以在一個例子中完成。 – BASILIO

+0

@BASILIO - 使用現有的API v3方法無法在一個實例中完成。你可以創建一個函數來刪除給定數組中的所有覆蓋(通過setMap(null)),然後傳入一個覆蓋數組 – Adam