Javascript 在添加新标记之前从地图中删除标记

Javascript 在添加新标记之前从地图中删除标记,javascript,php,jquery,google-maps,Javascript,Php,Jquery,Google Maps,我有一个映射,其中最初标记加载来自数据库,然后我有一个基于时间的Ajax请求,它每1分钟获取一次记录 下面是我从中使用的代码,中的setmaponal(null),但它不起作用 success: function(data){ var positions = []; $.each(data.riders, function(index, value) { positions.push({ lat: value.rider_location.

我有一个映射,其中最初标记加载来自数据库,然后我有一个基于时间的Ajax请求,它每1分钟获取一次记录

下面是我从中使用的代码,中的
setmaponal(null)
,但它不起作用

success: function(data){
    var positions = [];
    $.each(data.riders, function(index, value) {
        positions.push({
            lat: value.rider_location.lat,
            lng: value.rider_location.lng,
            content: value.name,
            id : value.id
        });
    });
    map.setCenter({
      lat: parseInt(positions[0].lat),
      lng: parseInt(positions[0].lng)
    });
    var infowindow = new google.maps.InfoWindow();
    var marker,
    i;
    setMapOnAll(null); //Remove the existing markers
    while(positions.length){
        positions.pop().setMap(null);
    }
    for (i = 0; i < positions.length; i++) {
        marker = new google.maps.Marker({
            position: new google.maps.LatLng(positions[i].lat,positions[i].lng),
            map: map,
            id : positions[i].id,
          });
        google.maps.event.addListener(marker, 'click', (function (marker, i) {
        return function () {  
        }
      }) (marker, i));
    }
  }
成功:函数(数据){
var头寸=[];
$.each(data.riders,函数(索引,值){
位置,推({
lat:value.rider\u location.lat,
液化天然气:value.u location.lng,
内容:value.name,
id:value.id
});
});
地图设置中心({
lat:parseInt(位置[0].lat),
lng:parseInt(位置[0].lng)
});
var infowindow=new google.maps.infowindow();
var标记,
我
setmaponal(null);//删除现有标记
while(位置、长度){
positions.pop().setMap(空);
}
对于(i=0;i

如何在添加新标记之前删除现有标记。

有方法marker.setMap(null)作为google文档

您需要创建标记数组,然后通过调用方法marker.setMap(null)从循环中的映射中删除所有标记

var标记=[];
对于(i=0;i
您应该将此函数添加到代码中,并在添加新标记的位置调用它,然后再添加新标记。这将删除以前的标记

function setMapOnAll(map) {

  for (var i = 0; i < markers.length; i++) {

  markers[i].setMap(map);
  }
}
函数setMapOnal(映射){
对于(var i=0;i
这是有道理的,但是我应该把代码放在哪里
marker.setMap(null)
。请编辑你的答案。你说的“不工作”是什么意思?控制台中有错误吗?您在哪里定义
setmaponal
函数?请提供一份说明您的问题的报告。
function setMapOnAll(map) {

  for (var i = 0; i < markers.length; i++) {

  markers[i].setMap(map);
  }
}