我看到这里的人可能会解释这个功能:
// REMOVE All MARKERS FUNCTION
// Removes all markers currently on map
// PARAMS: None
function removeAllMarkers(){// removes all markers from map
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
markersArray = [];
markersInfoArray = [];
};
};
};
但我收到一个 javascript 错误...
出错时中断
markerArray[i].setMap 不是函数
该页面位于:http://www.focus-on-plants.com/locator.php
有任何想法吗???
我尝试了建议并将
MarkersArray=[]
和 markersInfoArray = []
移到 for 循环的外侧,所以我有这个:for( var i = 0; i < markersArray.length; i++ ){
markersArray[i].setMap(null);
}
但我得到了相同的
error markersArray[i].setMap is not a function
所以我环顾四周并尝试了这个方法:
function removeAllMarkers(){// removes all markers from map
alert('REMOVE MARKERS - markersArray count:'+ markersArray.length);
while(markersArray[0]){
markersArray.pop().setMap(null);
markersInfoArray.pop()
}
markersArray.length = 0;
markersInfoArray.length = 0;
};
我仍然得到同样的错误,是什么导致的?它几乎就像 setMap() 不存在一样,我在另一个线程 here 中读到它从 set_map 更改为 setMap() 但那些也不适合我:(
最佳答案
我和你有同样的问题。但是将 for-in 循环更改为实际循环(如建议的 here ,修复了它。
删除标记时无需创建新的 google.maps.marker。
样例代码:
var markersArray = [];
function addMarker() {
var marker = new google.maps.Marker({
position: latlng,
map: map
});
markersArray.push(marker);
}
function removeMarker() {
if (markersArray) {
for (i=0; i < markersArray.length; i++) {
markersArray[i].setMap(null);
}
markersArray.length = 0;
}
}
关于jquery - 尝试清除所有标记时未定义google maps v3 setMap,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4137308/