2011-04-15 264 views
0

我有以下代碼谷歌地圖API V2標記問題

var marker; 
var marker_list = []; 
        for (iLoopIndex=0;iLoopIndex<10;iLoopIndex++) 
        { 
         centerPoint = new GLatLng(32+iLoopIndex,68+iLoopIndex); 
         alert(centerPoint); 
         map.setCenter(centerPoint); 

         blueIcon = new GIcon(G_DEFAULT_ICON); 
         blueIcon.image = "truck.png"; 
         blueIcon.iconSize = new GSize(40, 20); 

         // Set up our GMarkerOptions object 
         markerOptions = { icon:blueIcon }; 
         //map.addOverlay(new GMarker(centerPoint, markerOptions)); 
         marker = new GMarker(centerPoint, markerOptions); 

         GEvent.addListener(marker, "click", function() { 
         marker.openInfoWindowHtml("iLocator <b>"+Myarr[2]+"</b>"); 
         marker_list.push(marker); 
        }); 
         map.addOverlay(marker); 
        }//End for 

本準則就谷歌地圖10個標記,現在我想刪除標記,以下是刪除標記的代碼。

for (iLoopIndex=0;iLoopIndex<marker_list.length;iLoopIndex++) 
{ 
    map.removeOverlay(marker_list[iLoopIndex]); 
} 

此代碼不工作,它只能從標記中刪除infowindow,但不會刪除圖像。請引導我做錯了什麼。

+1

現在是時候升級到GoogleMaps v3,因爲它完全從v2更改。大多數開發人員可能無法幫助您。 removeOverlay調用後,可能需要使用Firebug for map對象進行調試。 – Senthil 2011-04-15 04:41:35

回答

1

您正在將您的標記插入您註冊的GEvent Listener的回調函數內的marker_list數組中。您的數組只會填充其InfoWindow觸發的標記。

移動「marker_list.push(marker);」到上面的「map.addoverlay(marker);」即..

GEvent.addListener(marker, "click", function() { 
        marker.openInfoWindowHtml("iLocator <b>"+Myarr[2]+"</b>"); 
       }); 
        marker_list.push(marker); 
        map.addOverlay(marker); 
       }//End for 
+0

還有一個問題是我面對的信息窗口只顯示在一個標記上。 – Siddiqui 2011-04-15 07:16:20