利用经纬度一周运动轨迹,并标记最近时刻出现的位置,弹出详细地址信息
//获取原始经纬度位置(时间、经度、纬度) 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); }); }); `