代码无法从谷歌地图中删除选定的标记

Code cannot remove selected Marker from Google Map

本文关键字:删除 谷歌地图 代码      更新时间:2023-09-26

嗨,我得到了下面的代码,我试图随机添加一些标记。然后在第二个函数中,尝试删除选定的标记。但是我的标记Coin[i].setMap(null);行似乎并没有任何效果,它并没有删除选定的标记。此外,它不会产生任何错误。

var markerCoin=[]; // Global Variable
    function addMarker(){
  var max = Math.random() < 0.5 ? -0.0005 : 0.0005; 
  var min=Math.random() < 0.5 ? -0.0001 : 0.0001;
  for (i = 0; i < 5; i++) {
    markerCoin [i] = new google.maps.Marker({
      position: new google.maps.LatLng(myLat+ ( Math.random() * (max - min) + min), myLng+ ( Math.random() * (max - min) + min)),
      map: map
    });
    targetLat[i]=markerCoin[i].getPosition().lat();
    targetLng[i]=markerCoin[i].getPosition().lng();

  }
}
function markerDelete() {
  var distance;
  for (i = 0; i < 5; i++) {
    if (targetLat[i]!=0) {
      distance = getDistanceFromLatLonInKm(myLat,myLng,targetLat[i],targetLng[i]);
    }
    if (distance <= 30) {
      alert(distance);
      markerCoin [i].setMap(null);**//it does not remove the marker.**
      targetLat[i]=0;
    }
  }
}

有什么建议吗?我做错了什么?

这似乎对我有用:

  var markerCoin=[];
  var targetLat=[];
  var targetLng=[];
  function addMarker(){
    var max = Math.random() < 0.5 ? -0.0005 : 0.0005; 
    var min = Math.random() < 0.5 ? -0.0001 : 0.0001;
    for (i = 0; i < 5; i++) {
      markerCoin[i] = new google.maps.Marker({
        position: new google.maps.LatLng( myLat + ( Math.random() * (max - min) + min), myLng + ( Math.random() * (max - min) + min)),
        map: map
      });
      targetLat[i]=markerCoin[i].getPosition().lat();
      targetLng[i]=markerCoin[i].getPosition().lng();

    }
  }
  function markerDelete() {
    var distance;
    if (targetLat[i]!=0) {
      distance = getDistanceFromLatLonInKm(myLat,myLng,targetLat[i],targetLng[i]);
    }
    if (distance <= 30) {
      for (i = 0; i < 5; i++) {
        markerCoin[i].setMap(null);
        targetLat[i]=0;
      }
    }
  }
  addMarker();
  markerDelete();

看看这个稍微修改过的JSFiddle。