Javascript 在添加新标记之前从地图中删除标记
我有一个映射,其中最初标记加载来自数据库,然后我有一个基于时间的Ajax请求,它每1分钟获取一次记录 下面是我从中使用的代码,中的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.
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);
}
}