layui.use('laydate', function(){ var laydate = layui.laydate; laydate.render({ elem: '#test16' ,type: 'datetime' ,range: '到' ,done: function(value, date){ $("#FanWei").val(value) } }); }); var sudu=1000; var tds = true; var form = layui.form; $.get("/hxzkuwb/findmap",function (data){ var selectData = [ ]; for (var i = 0; i < data.length; i++) { var option = { value: data[i].floor, title: data[i].mapname }; selectData.push(option); } // 动态生成下拉框选项 var selectElem = document.getElementById('cxList'); for (var i = 0; i < selectData.length; i++) { var optionElem = document.createElement('option'); optionElem.value = selectData[i].value; optionElem.text = selectData[i].title; selectElem.appendChild(optionElem); } // 重新渲染下拉框 form.render('select'); }) var bm; function init(){ bm = new BMapGL.Map("baidumap",{mapType:BMAP_SATELLITE_MAP}); // 创建Map实例 bm.centerAndZoom(new BMapGL.Point(87.506299, 43.840568), 15); // 初始化地图,设置中心点坐标和地图级别 bm.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 } var nub = false; var dtlist =[]; var bgcolor; var cx = false; var datalist; function baiDuGuiJi() { if (nub) { layer.msg('当前轨迹正在查询,结束后即可再次查询', { offset: '100px' }); } else { $(".heimu").show(); $(".heimu1").show(); var id = $("#tagid").val(); var time = $("#FanWei").val(); if (id == "") { layer.msg('请输入设备编号', { offset: '250px' // 向右偏移 100px }); $(".heimu").hide(); $(".heimu1").hide(); return } if (time == "") { layer.msg('请选择时间范围', { offset: '250px' // 向右偏移 100px }); $(".heimu").hide(); $(".heimu1").hide(); return; } cx = true Convertor.prototype.WGS2GCJ_lat = function (x, y) { var ret1 = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x)); ret1 += (20.0 * Math.sin(6.0 * x * this.M_PI) + 20.0 * Math.sin(2.0 * x * this.M_PI)) * 2.0 / 3.0; ret1 += (20.0 * Math.sin(y * this.M_PI) + 40.0 * Math.sin(y / 3.0 * this.M_PI)) * 2.0 / 3.0; ret1 += (160.0 * Math.sin(y / 12.0 * this.M_PI) + 320 * Math.sin(y * this.M_PI / 30.0)) * 2.0 / 3.0; return ret1; } ; Convertor.prototype.WGS2GCJ_lng = function (x, y) { var ret2 = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x)); ret2 += (20.0 * Math.sin(6.0 * x * this.M_PI) + 20.0 * Math.sin(2.0 * x * this.M_PI)) * 2.0 / 3.0; ret2 += (20.0 * Math.sin(x * this.M_PI) + 40.0 * Math.sin(x / 3.0 * this.M_PI)) * 2.0 / 3.0; ret2 += (150.0 * Math.sin(x / 12.0 * this.M_PI) + 300.0 * Math.sin(x / 30.0 * this.M_PI)) * 2.0 / 3.0; return ret2; } Convertor.prototype.outofChine = function (p) { if (p.lng < 72.004 || p.lng > 137.8347) { return true; } if (p.lat < 0.8293 || p.lat > 55.8271) { return true; } return false; } Convertor.prototype.WGS2GCJ = function (poi) { if (this.outofChine(poi)) { return; } var poi2 = {}; var dLat = this.WGS2GCJ_lat(poi.lng - 105.0, poi.lat - 35.0); var dLon = this.WGS2GCJ_lng(poi.lng - 105.0, poi.lat - 35.0); var radLat = poi.lat / 180.0 * this.M_PI; var magic = Math.sin(radLat); magic = 1 - this.EE * magic * magic; var sqrtMagic = Math.sqrt(magic); dLat = (dLat * 180.0) / ((this.A * (1 - this.EE)) / (magic * sqrtMagic) * this.M_PI); dLon = (dLon * 180.0) / (this.A / sqrtMagic * Math.cos(radLat) * this.M_PI); poi2.lat = poi.lat + dLat; poi2.lng = poi.lng + dLon; return poi2; } Convertor.prototype.GCJ2BD09 = function (poi) { var poi2 = {}; var x = poi.lng , y = poi.lat; var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * this.X_PI); var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * this.X_PI); poi2.lng = z * Math.cos(theta) + 0.0065; poi2.lat = z * Math.sin(theta) + 0.006; return poi2; } Convertor.prototype.WGS2BD09 = function (poi) { //WGS->GCJ var poi2 = this.WGS2GCJ(poi); if (typeof poi2 === "undefined") { return; } //GCJ->百度坐标系 return this.GCJ2BD09(poi2); } function Convertor(ak) { this.stepCount = 100; this.pointCount = []; this.Result = []; this.NoisIndex = []; this.Time = new Date(); this.AK = ak; this.M_PI = 3.14159265358979324; this.A = 6378245.0; this.EE = 0.00669342162296594323; this.X_PI = this.M_PI * 3000.0 / 180.0; } var dts = []; var id = $("#tagid").val(); var time = $("#FanWei").val(); var zuobiaoxi = ""; //从数据库查询当前选择的什么系坐标 $.ajax({ url: "/hxzkuwb/findbaidumapList", type: "GET", async: false, success: function(data) { zuobiaoxi = data[0].zhuanhuan } }); var data = "tagid=" + id + "&time=" + time $.ajax({ url: "/hxzkuwb/findBaiDuGuiJi", data: data, async: false, success: function (data) { datalist = data; if (datalist.length == 0){ $(".heimu").hide(); $(".heimu1").hide(); layer.alert('当前时间段没有此设备的轨迹信息', { offset: '200px', // 设置垂直偏移量 // 或者 // offset: ['100px', '50px'] // 设置水平和垂直偏移量 }); return } var ds = "id=" + data[0].tagid $.ajax({ url: "/hxzkuwb/findtagIdPerson", data: ds, async: false, success: function (data) { var bumen = data.pdepartment; var dt = "departmentname=" + bumen $.ajax({ url: "/hxzkuwb/findBuMenColor", data: dt, async: false, success: function (data) { bgcolor = data.baoliu5 } }) } }) if (data.length == 0) { layer.alert('当前时间段没有此设备的轨迹信息', { offset: '200px', // 设置垂直偏移量 // 或者 // offset: ['100px', '50px'] // 设置水平和垂直偏移量 }); } else { $(".heimu").hide(); $(".heimu1").hide(); nub = true; // 处理同步请求返回的数据 for (var i = 0; i < data.length; i++) { var c = new Convertor(); if (zuobiaoxi == "百度"){ var rr1 = c.WGS2BD09({ lng: parseFloat(data[i].gspJingdu), lat: parseFloat(data[i].gpsWeidu) }); }else{ var rr1 = { lng: parseFloat(data[i].gspJingdu), lat: parseFloat(data[i].gpsWeidu) }; } dts.push(rr1) dtlist.push(rr1) } var path = dts; // 创建移动的图标 var movingIcon = new BMapGL.Icon('../../Icon/人员.png', new BMapGL.Size(32, 32)); var marker = new BMapGL.Marker(path[0], {icon: movingIcon}); var label = new BMapGL.Label("", {offset: new BMapGL.Size(0, -50)}); label.setStyle({ color: "white", fontSize: "12px", borderRadius: "5px", padding: "5px 5px", border: "0", transform: 'translateX(-50%)', backgroundColor: bgcolor, }); var label1 = new BMapGL.Label("", {offset: new BMapGL.Size(0, 30)}); label1.setStyle({ color: "white", fontSize: "12px", borderRadius: "5px", padding: "5px 5px", border: "0", transform: 'translateX(-50%)', backgroundColor: bgcolor, }); bm.clearOverlays(); marker.setLabel(label); var marker1 = new BMapGL.Marker(path[0], {icon: movingIcon}); marker1.setLabel(label1); bm.addOverlay(marker1) bm.addOverlay(marker); bm.centerAndZoom(new BMapGL.Point(path[0].lng, path[0].lat), 15); // 动画函数 function animateMarker(index) { if (tds == false) { localStorage.setItem("JiXu",index) return; } else { if (index == path.length) { nub = false } $("#data1").text(index + "/" + data.length) $(".data2").text(data[index].name) $(".data3").text(data[index].tagid) $(".data4").text(data[index].gspJingdu) $(".data5").text(data[index].gpsWeidu) $(".data6").text(data[index].gpsHaibaGao) $(".data7").text(data[index].gpsState) $(".data11").text(data[index].gpsPower) $(".data12").text(data[index].addtime) if (index < path.length) { var point = new BMapGL.Point(path[index].lng, path[index].lat); marker.setPosition(point); marker1.setPosition(point); label.setContent(data[index].name + " " + data[index].tagid); label1.setContent(data[index].gspJingdu + " " + data[index].gpsWeidu); // 设置延迟后移动到下一个点 setTimeout(function () { animateMarker(index + 1); }, sudu); // 这里设置的是每500毫秒移动一次,你可以根据需要调整 } if (index < path.length && index > 0) { var line = new BMapGL.Polyline([path[index - 1], point], { strokeColor: 'red', strokeWeight: 2, strokeOpacity: 1 }); bm.addOverlay(line); } } } animateMarker(0); } return dts } }); } } function baiduBoFang(){ var bdsd = $("#bofangsudu").val(); if (bdsd == "1"){ sudu = 1000 } if (bdsd == "2"){ sudu = 500 } if (bdsd == "4"){ sudu = 250 } if (bdsd == "6"){ sudu = 150 } if (bdsd == "播放速度x8"){ sudu = 0 } }