0

如何删除谷歌地图中的特定标记?我尝试了下面的代码,但TypeError: marker[1] is undefined出现错误。如果没有 [1],它只会删除第一个标记。

google.maps.event.addDomListener(deletemark, 'click', function() {
          marker[1].setMap(null);
});
}

(来自评论,稍作编辑)这就是我创建标记的方式,以及标记的 lat,long 数组

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 
4

2 回答 2

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;
}
}
于 2013-05-04T09:35:43.127 回答
1

您的问题是您有一个标记变量,指向您创建的最后一个标记(不是第一个)。如果要删除其他标记,则需要保留对它们的引用(在数组中或使用函数闭包)。

于 2013-05-03T21:39:46.223 回答