删除特定标记APIv3

时间:2013-05-03 20:00:45

标签: javascript arrays google-maps

如何删除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 

2 个答案:

答案 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 标记(不是第一个)。如果要删除其他标记,则需要保留对它们的引用(在数组中或使用函数闭包)。