我在CI中有一个应用程序,在该应用程序中,我每两秒钟从数据库中获取一名雇员的当前位置,并绘制其当前位置标记 我的代码正常工作,但是每隔2秒,它将通过显示一个新的位置标记来更新标记,但也会继续显示旧标记。 我想在显示新标记之前删除员工的旧标记。 这是我的代码
<script>
function initMap4(data,id) {
var map2 = new google.maps.Map(document.getElementById('map2'), {
zoom: 8,
center: new google.maps.LatLng(31.1704,72.7097),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow({});
window.setInterval(function(){
$.ajax({
type: 'POST',
url: '<?php echo base_url() ?>salesman/get_salesman_by_id',
data : { id: id},
success: function (response) {
var result = response ;
update(result);
}
});
},2000);
function update(data){
var clicked = false;
var locations2;
if(data){
locations2= JSON.parse(data);
}else{
locations2 = JSON.parse('<?php echo $clocation; ?>');
}
var locations_array2= [];
$.each(locations2[0], function( index, value ) {
locations_array2.push([
value.first_name,
value.lat,
value.long,
value.checkin_time,
value.checkout_time,
]);
});
locations2=locations_array2;
for (i = 0; i < locations2.length; i++)
{
var currTime = Date.now() - 300000;
var online = locations2[i][5];
var MyOnlineMarker = {
position: new google.maps.LatLng(locations2[i][1], locations2[i][2]),
map: map2,
};
if(locations2[i][4] == "" ){
marker = new google.maps.Marker(MyOnlineMarker);
}else{
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations2[i][1], locations2[i][2]),
map: map2,
icon: 'assets/Images/red.png'
});
}
}
}
}
</script>
答案 0 :(得分:0)
我已经解决了 通过将标记插入数组而不是删除标记 p>