在谷歌地图API v2,如果我想删除所有的地图标记,我可以简单地做:
map.clearOverlays();
我如何做到这一点在谷歌地图API v3?
看看参考API,我不清楚。
在谷歌地图API v2,如果我想删除所有的地图标记,我可以简单地做:
map.clearOverlays();
我如何做到这一点在谷歌地图API v3?
看看参考API,我不清楚。
当前回答
我使用的速记法很好地完成了这项工作。只做
map.clear();
其他回答
你是说删除是指隐藏它们还是删除它们?
如果隐藏:
function clearMarkers() {
setAllMap(null);
}
如果你想删除它们:
function deleteMarkers() {
clearMarkers();
markers = [];
}
注意,我使用数组标记来跟踪它们,并手动重置它。
你也可以这样做:
function clearMarkers(category){
var i;
for (i = 0; i < markers.length; i++) {
markers[i].setVisible(false);
}
}
在两个答案中发布的“set_map”函数似乎不再在谷歌Maps v3 API中工作。
我想知道发生了什么事
更新:
似乎谷歌改变了他们的API,使“set_map”不是“setMap”。
http://code.google.com/apis/maps/documentation/v3/reference.html
您需要将map null设置为该标记。
var markersList = [];
function removeMarkers(markersList) {
for(var i = 0; i < markersList.length; i++) {
markersList[i].setMap(null);
}
}
function addMarkers() {
var marker = new google.maps.Marker({
position : {
lat : 12.374,
lng : -11.55
},
map : map
});
markersList.push(marker);
}
我刚刚尝试了kmlLayer.setMap(null),它工作。不确定这是否适用于普通的标记,但似乎工作正确。