$.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)
}
});
}