开发者问题收集

无法删除 Google Maps JS API 中的标记

2015-11-10
8122

我想在点击地图时删除地图上的所有标记。

我正在遵循此处的文档: https://developers.google.com/maps/documentation/javascript/examples/marker-remove

我已经包含了该函数:

function clearMarkers() {
  setMapOnAll(null);
}

由点击事件触发,但我只收到错误:

Uncaught ReferenceError: setMapOnAll is not defined

文档中没有其他可以帮助我的信息。

有人可以指出我正确的方向吗?

2个回答

错误表明 setMapOnAll 在范围内不存在

// Sets the map on all markers in the array.
function setMapOnAll(map) {
  for (var i = 0; i < markers.length; i++) {
    markers[i].setMap(map);
  }
}
sjm
2015-11-10

回答您的最后一个问题,您实际上不需要在数组中添加标记,但请注意,在文档示例中,他们在将标记添加到数组之前添加了单词 var

    var marker = new google.maps.Marker({
    position: location,
    map: map
    });
    markers.push(marker); ...

如果您只想使用一个标记,那么请不要添加 var 单词

marker = new google.maps.Marker({...

然后使用 marker.setMap(null); 将其从地图中取出。

alfmonc
2016-07-13