|
|
|
|
|
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
|
}
|
}
|