清除Google地图上的标记

时间:2017-01-18 14:59:39

标签: javascript google-maps

我制作了一套带有两套标记的自定义Google地图。我试图编写一个功能来清除标记,但无法使其工作。

功能:

function clearMarkers() {
  for (var i = 0; i < markers.length; i++) {
    markers[i].setMap(null);
  }
  markers = [];
};

当标记处于lat,long格式(如下所示)时,此方法有效:

var locs1 = [
{lat: 51.2, lng: 0},
{lat: 52, lng: 0.3}
]

但是当我使用数组来定义标记时(如下所示)它不再起作用:

var locs1 = [
['Name', 51.2, 0, 'Info'],
['Name', 52, 0.3, 'Info']
];

如何使clearMarkers功能正常工作?

可以在this Fiddle中找到完整代码,以帮助理解背景信息。

2 个答案:

答案 0 :(得分:1)

您的变量标记应该是全局的,而不是在函数中声明。

我修改了您的fiddle

var markers = [];

var locs1 = [
['Name', 51.2, 0, 'Info'],
['Name', 52, 0.3, 'Info']
];

var locs2 = [
['Name', 53, -1.93, ' Info'], ['Name', 51, -1.8979, 'Info']
];

答案 1 :(得分:0)

我以前遇到过这个问题。您需要保留标记的列表或数组,然后迭代它们以清除它们。简单地将一组坐标设置为null不一定会清除已经存在的标记,因为它是一个不同的对象。

Google Map API - Removing Markers