$.ajaxSetup({ headers: { 'x-access-token': localStorage.getItem("hxzkmars3d") } }); let graphics = []; // 用于存储所有跌落位置的数组 //快速定位 function KuaiSuDingWei() { var pTagid = $("#KuaiSuDingWeiTag").val(); if (pTagid == "") { graphics.forEach(graphic => { graphicLayer.removeGraphic(graphic); // 从图层中移除 }); graphics = []; // 清空标记数组 layer.msg("清空跌落位置!"); // 显示清除成功消息 return false; } if (pTagid && pTagid.includes(',')) { const coordinates = pTagid.split(','); if (coordinates.length === 2) { const lon = parseFloat(coordinates[0]); const lat = parseFloat(coordinates[1]); if (!isNaN(lon) && !isNaN(lat)) { // 经纬度搜索 map.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(lon, lat, 500), duration: 3 }); layer.msg("搜索位置成功"); // 显示成功消息 // 在指定位置添加标记 var graphic = new mars3d.graphic.PointEntity({ name: "贴地点", position: new mars3d.LngLatPoint(lon, lat), style: { color: "#ffff00", pixelSize: 10, clampToGround: true, outlineWidth: 0, label: {text: "触发位置", pixelOffsetY: -10}, // 高亮时的样式(默认为鼠标移入,也可以指定type:'click'单击高亮),构造后也可以openHighlight、closeHighlight方法来手动调用 highlight: { type: mars3d.EventType.click, // 默认为鼠标移入高亮,也可以指定click单击高亮 pixelSize: 15, outlineColor: "#ff0000", outlineWidth: 2 } }, attr: {remark: "跌落位置"} }) graphicLayer.addGraphic(graphic) graphics.push(graphic); // 将新标记添加到数组中 } else { layer.msg("不正确的纬度和经度格式。"); } } else { layer.msg("请输入有效纬度和经度。"); } }else if(pTagid && pTagid.includes(';')){ const coordinates = pTagid.split(';'); if (coordinates.length === 2) { const lon = parseFloat(coordinates[0]); const lat = parseFloat(coordinates[1]); if (!isNaN(lon) && !isNaN(lat)) { // 经纬度搜索 map.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(lon, lat, 500), duration: 3 }); layer.msg("搜索位置成功"); // 显示成功消息 // 在指定位置添加标记 var graphic = new mars3d.graphic.BillboardEntity({ name: "贴地点", position: new mars3d.LngLatPoint(lon,lat), style: { image: "/hxzkuwb/view/Home/HomeImg/lizhixianweizhi.png", clampToGround: true, outlineWidth: 0, scale: 0.1, // 设置图片的大小为原来的50% label: { pixelOffsetY: -10, addHeight:9, zIndex:99 }, // 高亮时的样式(默认为鼠标移入,也可以指定type:'click'单击高亮),构造后也可以openHighlight、closeHighlight方法来手动调用 }, attr: { remark: "离线时位置" } }) graphicLayer.addGraphic(graphic) graphics.push(graphic); // 将新标记添加到数组中 } else { layer.msg("不正确的纬度和经度格式。"); } } else { layer.msg("请输入有效纬度和经度。"); } }else{ var data = "pTagid="+pTagid $.ajax({ url: "/hxzkuwb/findOnePerson", type: "POST", data: data, async: false, success: function(data) { if (data !="" || data.baoliu2 !="null" || data.baoliu2 !="-1"){ if (data.baoliu2 =="-1"){ layer.msg("该人员未曾上过线") return false; } var targetPoint = { lat: data.baoliu3, // 纬度 lon: data.baoliu2 // 经度 }; // 使用 Mars3D 的 flyTo 方法来移动地图 if (isNaN(targetPoint.lon) || parseInt(targetPoint.lon) < 40) { layer.msg("坐标信息不正确") return } map.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(targetPoint.lon, targetPoint.lat, 500), // 目标点经纬度和视角高度 duration: 3 // 动画持续时间(秒) }); graphicLayer.eachGraphic( (car) => { // 取出对应车辆的轨迹列表 if (car.id == pTagid){ car.circle = true } } ); layer.msg("搜索位置成功!") if(data.ponline == "0"){ data.id = data.ptagid var graphic = new mars3d.graphic.BillboardEntity({ id: data.ptagid, name: "贴地点", position: new mars3d.LngLatPoint(targetPoint.lon, targetPoint.lat), style: { image: "/hxzkuwb/view/Home/HomeImg/lizhixianweizhi.png", clampToGround: true, outlineWidth: 0, scale: 0.1, // 设置图片的大小为原来的50% label: { text: data.pname+" "+data.id, font_size: 14, color: "#ffffff", distanceDisplayCondition: false, clampToGround:false, backgroundOpacity:0.8, }, // 高亮时的样式(默认为鼠标移入,也可以指定type:'click'单击高亮),构造后也可以openHighlight、closeHighlight方法来手动调用 }, attr: data }) graphicLayer.addGraphic(graphic) graphics.push(graphic); // 将新标记添加到数组中 }else{ setTimeout(function (){ Perspective(data.ptagid) },100) } }else{ layer.msg("请输入有效人员或设备") } }, error: function(xhr, status, error) { layer.msg("请联系管理员") } }); } } function DingWeiColor(){ $("#KuaiSuDingWeiTag").css("border", "#1D8809 2px solid"); // 设置背景颜色为黄色 $("#KuaiSuButton").css("background-color", "#1D8809"); // 设置背景颜色为黄色 } function DingWeiColor1(){ $("#KuaiSuDingWeiTag").css("border", "#4662D9 2px solid"); // 设置背景颜色为黄色 $("#KuaiSuButton").css("background-color", "#4662D9"); // 设置背景颜色为黄色 } //在线人员-离线人员功能 function OnlinePerson(type){ $("#onlinePerson1").empty() if (type == 1){ //在线人员 $.ajax({ async: false, type: 'GET', traditional: true, url: "/hxzkuwb/getGPS", dataType: 'json', data: {}, success: function(data) { // 假设 data 是你传入的数组 for (let i = 0; i < data.length; i++) { let pname = data[i].pname; let power = data[i].ppower; // 如果 pname 超过 4 个字,替换为前 4 个字加上省略号 if (power == null || power == "-1"){ power = "未知" } if (data[i].baoliu19 != "车载标签"){ $("#onlinePerson1").append(''+pname+''+data[i].ptagid+''+power+'%'); } } } }); }else if (type == 0){ $.ajax({ async: false, type: 'GET', traditional: true, url: "/hxzkuwb/getGPSNoOnLine", dataType: 'json', data: {}, success: function(data) { for (let i = 0; i < data.length; i++) { let pname = data[i].pname; let power = data[i].ppower; // 如果 pname 超过 4 个字,替换为前 4 个字加上省略号 if (power == null || power == "-1"){ power = "未知" } if (data[i].baoliu19 != "车载标签"){ $("#onlinePerson1").append(''+pname+''+data[i].ptagid+''+power+'%'); } } } }); }else if (type == 3){ //在线车辆 $.ajax({ async: false, type: 'POST', traditional: true, url: "/hxzkuwb/getCarGPSOnLine", dataType: 'json', data: {}, success: function(data) { for (let i = 0; i < data.length; i++) { let pname = data[i].pname; let power = data[i].ppower; // 如果 pname 超过 4 个字,替换为前 4 个字加上省略号 if (power == null || power == "-1"){ power = "未知" } $("#onlinePerson1").append(''+pname+''+data[i].ptagid+''+power+'%'); } } }); }else{ //离线车辆 $.ajax({ async: false, type: 'POST', traditional: true, url: "/hxzkuwb/getCarGPSNoOnLine", dataType: 'json', data: {}, success: function(data) { for (let i = 0; i < data.length; i++) { let pname = data[i].pname; let power = data[i].ppower; // 如果 pname 超过 4 个字,替换为前 4 个字加上省略号 if (power == null || power == "-1"){ power = "未知" } $("#onlinePerson1").append(''+pname+''+data[i].ptagid+''+power+'%'); } } }); } $("#onlinePerson").fadeIn(500) } function KuaiSuGps(id){ $("#KuaiSuDingWeiTag").val(id); KuaiSuDingWei() } function CloseOnlinePerson(){ $("#onlinePerson").fadeOut(500) layer.msg('关闭成功') } //即使通讯发送功能 function PersonName() { var name = $("#username").val(); var data = "name=" + name; var newData = []; $.post("/hxzkuwb/findPersonSendMsg", data, function(data) { $("#PersonNames").empty() for (let i = 0; i < data.length; i++) { $("#PersonNames").append('
  • '+data[i].pname +' '+data[i].ptagid +'
  • ') } if (data.length == 0){ $("#PersonNames").append('
  • 暂无此人员
  • ') }else{ $("#PersonNames").append('
  • 已经到底部了
  • ') } $("#PersonNames").show() if (name == ""){ $("#PersonNames").hide() } }); } function PersonNameDingWei() { var name = $("#KuaiSuDingWeiTag").val(); if (name == ""){ clearInterval(manyou); } var data = "name=" + name; var newData = []; $.post("/hxzkuwb/findPersonSendMsg", data, function(data) { $("#PersonNameDingWei").empty() for (let i = 0; i < data.length; i++) { $("#PersonNameDingWei").append('
  • '+data[i].ptagid+' '+data[i].pname+'
  • ') } if (data.length == 0){ $("#PersonNameDingWei").append('
  • 暂无此人员
  • ') }else{ $("#PersonNameDingWei").append('
  • 已经到底部了
  • ') } $("#PersonNameDingWei").show() if (name == ""){ $("#PersonNameDingWei").hide() } }); } function XzPersonName(id){ $("#username").val(id) $("#PersonNames").hide() } function XzPersonNameDingWei(id){ $("#KuaiSuDingWeiTag").val(id) $("#PersonNameDingWei").hide() } function GunSendCs(){ $("#SendMsg").fadeOut(500) } //人员详细信息功能 function acs(id){ var data = "id="+id $.get("/hxzkuwb/findtIdPerson",data,function (data){ if(data.ponline == "1"){ data.ponline = "在线" }else{ data.ponline = "离线" } $("#personImage").empty() $("#personImage").append('') $(".xingming").text(data.pname) $(".xingbie").text(data.psex) $(".bumen").text(data.pdepartment) $(".banben").text(data.baoliu42) $(".leixing").text(data.baoliu19) $(".dianhua").text(data.pphone) $(".kahao").text(data.ptagid) $(".shijian").text(data.pzu) $(".powers").text(data.ppower+"%") $(".jingdu").text(data.baoliu2) $(".weidu").text(data.baoliu3) $(".gaocheng").text(data.baoliu4) $(".zhuangtai1").text(data.baoliu13) $(".xzuobiao").text(data.px) $(".yzuobiao").text(data.py) $(".louceng").text(data.pfloor) $(".zhuangtai2").text(data.ponline) }) $("#acd").show() } function ShuaXinShuJu(){ var tagid = $(".kahao").text(); personMsgtid(tagid) getdateTime() layer.msg('刷新成功') } function getdateTime() { var date = new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; // 因为月份是从0开始计数,所以需要加1 var day = date.getDate(); var hours = date.getHours(); var minutes = date.getMinutes(); var seconds = date.getSeconds(); // 格式化时间,保证小时、分钟、秒始终有两位数 month = formatTime(month); day = formatTime(day); hours = formatTime(hours); minutes = formatTime(minutes); seconds = formatTime(seconds); // 更新页面显示时间的元素的内容 document.getElementById("personDate").innerHTML ="更新时间:"+ year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds; } function formatTime(time) { if (time < 10) { time = "0" + time; } return time; } function GuanMsg() { $("#acd").hide() } var manyou; function Perspective(tagid){ toastr.clear();//移除所有,有动画效果 clearInterval(manyou) var data = "id="+tagid manyou = setInterval(function (){ $.get("/hxzkuwb/findtagIdPerson",data,function (data){ var jingdu; var weidu; var alt; if (Models3dName == "3维视图"){ jingdu = parseFloat(data.baoliu2) - parseFloat(0.000113) weidu = parseFloat(data.baoliu3) + parseFloat(0.000223) alt = 10 }else{ jingdu = parseFloat(data.baoliu2) weidu = parseFloat(data.baoliu3) alt = 80; } var viewPoints = [ { lng: jingdu, lat: weidu, alt: alt, heading: 159, pitch: -11, duration: 1, stop: 0 }, ] // 视角切换(分步执行) map.setCameraViewList(viewPoints) tosta(data.ptagid,data.pname) }) },1000); } function tosta(ptagid,pname){ toastr.success("正在跟随 - 关闭取消跟随", "视角跟随", { onHidden: function() { clearInterval(manyou) } }); }