通过 JavaScript 清除 Google 地图 API 标记

Clear Google Maps API markers through JavaScript

我正在为我正在构建的项目使用 Google 地图 API v3。我已经设法在地图上用户点击的位置放置标记,但是我想要一个清除所有按钮来删除所有标记。我在这里查看了各种答案并尝试了不同的方法。我还查阅了 Google Maps API 文档,但是我尝试过的所有方法都不起作用。需要注意的是地图可以有多个标记

我的代码如下:

///The function addLatLng is called when the user clicks on the Map
   function addLatLng(event) {

  // This code adds the marker to the map
  var marker = new google.maps.Marker({
    position: event.latLng,
    title: '#' + path.getLength(),

map: map

  });



}

   ///The clearall function is called when a button is clicked
function clearall() {
    poly.setMap(null);//This clears the polyline that is drawn and works correctly

}

如有任何帮助,我们将不胜感激

根据Google Maps API doc calling setMap only remove the marker from the map but not delete it. If you want to delete multiple markers, you could do as in Google Maps API example given

1/ 添加标记时,将其压入数组

2/ 删除所有标记:创建一个将此数组作为参数的函数,并通过 for 循环对数组的每个元素应用 setMap()。

3/ 要在删除后删除所有标记(即从内存中删除):创建一个函数以在数组中的每个标记上调用 setMap(null)(根据 Google 删除标记)并删除所有数组中的标记(例如 markersArray = [])

您可以在我的第二个参考中找到相应的 google 示例代码。