一、定时循环执行器setInterval("getLoc()",5000);或者setInterval(getLoc,5000);的书写格式都是正确的。
这个方法是每过5秒就会执行getLoc()方法,从而调用ajax去后台访问数据。这里的ajax主要是去后台访问
经纬度的数据,以百度地图坐标的方式显示当前记录的位置。
$(function(){
setInterval(getLoc,5000);
//getLoc();
});
function getLoc(){
$.ajax({
url: "/service/gps/selectTopGps",
type : "POST",
data:{},
success: function(ajaxData) {
bm.clearOverlays();
lat=ajaxData[0].latitude;
lon=ajaxData[0].longitude;
// a++;
// console.log(a);
//调用百度地图
var x = lon*1/100;
var y = lat*1/100;
var ggPoint = new BMap.Point(x,y);
bm.centerAndZoom(ggPoint, 15);
bm.addControl(new BMap.NavigationControl());
//坐标转换完之后的回调函数
translateCallback = function (data){
if(data.status === 0) {
var marker = new BMap.Marker(data.points[0]);
bm.addOverlay(marker);
var label = new BMap.Label("您的宝贝在这里",{offset:new BMap.Size(20,-10)});
marker.setLabel(label); //添加百度label
bm.setCenter(data.points[0]);
}
}
setTimeout(function(){
var convertor = new BMap.Convertor();
var pointArr = [];
pointArr.push(ggPoint);
convertor.translate(pointArr, 1, 5, translateCallback)
}, 1000);
},
error:function(){
console.log("加载GPS信息失败!");
alert("GPS信息加载失败");
}
});
}
二、定时器setTimeout("getLoc",5000);或者setTimeout(getLoc,5000);的书写格式都是正确的。
如果把上面的setInterval()方法换成setTimeout()则getLoc()方法只会在5秒后执行一次后不再执行。