我制作了一套带有两套标记的自定义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中找到完整代码,以帮助理解背景信息。
答案 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不一定会清除已经存在的标记,因为它是一个不同的对象。