如何删除Google地图中的特定标记?我尝试了下面的代码,但是出现TypeError: marker[1] is undefined
错误。如果没有[1],它只会删除第一个标记。
google.maps.event.addDomListener(deletemark, 'click', function() {
marker[1].setMap(null);
});
}
(来自评论,稍加编辑)这就是我在数组中创建标记和标记的纬度的方法
var locations = [ [56.066877,21.069274], [55.279849,26.048155] ]; // removed "hanging comma"
for (i = 0; i < locations.length; i++)
{
marker = new MarkerWithLabel({
position: new google.maps.LatLng(locations[i][0], locations[i][1]),
map: map // removed "hanging comma"
});
} // added missing close bracket
答案 0 :(得分:3)
尝试使用数组来存储标记
var markerArray=[];
var locations = [ [56.066877,21.069274], [55.279849,26.048155] ];
for (i = 0; i < locations.length; i++)
{
marker = new MarkerWithLabel({
position: new google.maps.LatLng(locations[i][0], locations[i][1]),
map: map // removed "hanging comma"
});
markerArray.push(marker);
} /
并删除标记,
function deleteMarkers() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
markersArray.length = 0;
}
}
答案 1 :(得分:1)
您的问题是您有一个标记变量,左侧指向您创建的 last 标记(不是第一个)。如果要删除其他标记,则需要保留对它们的引用(在数组中或使用函数闭包)。