我有以下代码
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
此代码在Google地图上生成10个标记,现在我想删除标记,以下是删除标记的代码。
for (iLoopIndex=0;iLoopIndex<marker_list.length;iLoopIndex++)
{
map.removeOverlay(marker_list[iLoopIndex]);
}
此代码无效,只能从标记中删除infowindow,但不删除图像。请指导我做错了什么。
答案 0 :(得分:1)
您正在将标记推送到您注册的GEvent侦听器的回调函数内的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