【发布时间】:2019-01-08 21:14:50
【问题描述】:
我在 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>
【问题讨论】:
-
请提供一个minimal reproducible example 来证明您的问题。你的 JSON 是什么样的?
-
你会只有一个标记吗?或者可能有多个标记?如果是这样,您的 JSON 中是否有标识标记的属性?
标签: google-maps google-maps-api-3 google-maps-markers marker