利用经纬度一周运动轨迹,并标记最近时刻出现的位置,弹出详细地址信息
//获取原始经纬度位置(时间、经度、纬度)
var json = ${position};
var datas = [];
var times=[];
$.each(json, function(i,item){
datas.push(new BMap.Point(item.wzjd,item.wzwd));//wzjd经度、wzwd纬度
times.push(item.cjsj);//item.cjsj采集时间
})
var time = times[times.length-1];//最后出现位置的时间
var map = new BMap.Map("mychart",{
enableMapClick : false//关闭百度地图自带的弹出框
});//创建地图实例
map.centerAndZoom(datas[datas.length-1], 15); // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true);
map.addControl(new BMap.NavigationControl());//地图平移缩放控件PC端默认位于地图左上方,它包含控制地图的平移和缩放的功能。
map.addControl(new BMap.ScaleControl()); //比例尺控件,默认位于地图左下方,显示地图的比例关系。
map.addControl(new BMap.OverviewMapControl());//添加缩略地图控件,默认位于地图右下方,是一个可折叠的缩略地图
map.addControl(new BMap.MapTypeControl());//地图类型控件,默认位于地图右上方
var marker = new BMap.Marker(datas[datas.length-1]);
map.addOverlay(marker);
//marker.setLabel(new BMap.Label(time+"所在位置:",{offset:new BMap.Size(20,-10)}));
var polyline = new BMap.Polyline(datas,
{strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5}
);
map.addOverlay(polyline);
//通过baiduMap API获取街道名称
var address;
var gc = new BMap.Geocoder();
gc.getLocation(datas[datas.length-1], function(rs){
var addComp = rs.addressComponents;
address = addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber;
var opts = {title : '<span style="font-size:14px;color:#0A8021">'+time+'所在位置:' +'</span>'};
var infoWindow =new BMap.InfoWindow("<div style='line-height:1.8em;font-size:12px;'>"+ address +"</div>", opts); // 创建信息窗口对象,引号里可以书写任意的html 语句。
//鼠标悬停时,出现所在位置的提示框
marker.addEventListener("mouseover", function(){
this.openInfoWindow(infoWindow);
});
});
`