当我添加 removeMarker 函数时,每 5 秒在地图上加载一次图钉不显示图标

Loading pins on the map every 5 seconds is not showing the icons when i add the removeMarker function

我正在刷新 google 地图 JSON 文件每五秒钟获取新的图钉,每当我在数据库中进行任何更改并添加新图钉时,它们都会显示在地图上,但是奇怪的是,当我从数据库中删除一个图钉的坐标时,图钉并没有从地图上消失,而是留在那里,

这是我的代码

$.ajaxSetup ({  
    cache: false  
});  

setInterval(function(){
    $.getJSON('pins.php', function (items) {

    for (var i = 0; i < items.length; i++) {
        (function(item) {
          addMarker(item.PinLatitude, item.PinLongitude, map);
        })(items[i]);

      }
    removeMarker();  
    });
}, 5000);

这是我的 addMarker 函数

var bounds = new google.maps.LatLngBounds();
var markers = [];

function addMarker(lat, lng, map) {
  var latlng = new google.maps.LatLng(lat, lng);
  bounds.extend(latlng);
  var marker = new google.maps.Marker({
    position: latlng,
    icon: 'iconPin.png',
    map: map
  });
  map.fitBounds(bounds);
  markers.push(marker);//this note below
  return marker;
}

markers.push(标记); //当我添加它以将标记保存在数组中以便以后能够删除它们时,地图会在检测到引脚时进行拟合边界,但地图上没有显示引脚图标

这是我的 removeMarker 函数

function removeMarker() {
    bounds = new google.maps.LatLngBounds();//needed to clear out the bounds
    for (i=0; i < markers.length; i++) {
        markers[i].setMap(null);
    }
}

我尝试在设置的时间间隔内为主代码中的标记数组添加一个警报来代替 removeMarker 函数,但是警报每 5 秒就会消失一次,数组中没有任何内容

您需要在添加新标记之前删除标记

setInterval(function(){
    $.getJSON('pins.php', function (items) {

    removeMarker();  
    bounds = new google.maps.LatLngBounds();
    for (var i = 0; i < items.length; i++) {
        (function(item) {
          addMarker(item.PinLatitude, item.PinLongitude, map);
        })(items[i]);

      }
    });
}, 5000);

可能还想在从地图中删除标记数组后删除它们:

function removeMarker() {
    bounds = new google.maps.LatLngBounds();//needed to clear out the bounds
    for (i=0; i < markers.length; i++) {
        markers[i].setMap(null);
    }
    markers = [];
}