|
|
|
|
|
// var BASE_URL = "http://192.168.10.102:9023";
|
|
|
var BASE_URL = window.BASE_URL;
|
|
|
var APP_URL = window.APP_URL;
|
|
|
for (var i = 0; i < xianjie.features.length; i++) {
|
|
|
xianjie.features[i].id = i + 1;
|
|
|
}
|
|
|
|
|
|
var present_Township = "";
|
|
|
// console.log(xianjie);
|
|
|
var townshipCaseCount = [];
|
|
|
var newsReportDataGeoJsonArr = []
|
|
|
var historyCaseGeoJsonArr = []
|
|
|
var townshipCaseCountArr = [];
|
|
|
var colorSelect = [];
|
|
|
|
|
|
function loadMainMap() {
|
|
|
$.ajax({
|
|
|
type: "GET",
|
|
|
url: BASE_URL + "/api/DroneScreenDisplay/GetDroneOrgCount",
|
|
|
dataType: "json",
|
|
|
headers: { "X-Token": localStorage.getItem("X-Token") },
|
|
|
async: false,
|
|
|
data: {},
|
|
|
beforeSend: function (xhr) { },
|
|
|
success: function (data) {
|
|
|
townshipCaseCount = data.result;
|
|
|
// console.log("townshipCaseCount",townshipCaseCount);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
townshipCaseCount.forEach((item, index) => {
|
|
|
townshipCaseCountArr[index] = item.reportCount;
|
|
|
})
|
|
|
|
|
|
var bigCount = 0;
|
|
|
var smallCount = 9999;
|
|
|
for (var i = 0; i < townshipCaseCountArr.length; i++) {
|
|
|
if (townshipCaseCountArr[i] > bigCount) {
|
|
|
bigCount = townshipCaseCountArr[i]
|
|
|
}
|
|
|
if (townshipCaseCountArr[i] < smallCount) {
|
|
|
smallCount = townshipCaseCountArr[i]
|
|
|
}
|
|
|
}
|
|
|
|
|
|
let unit = (bigCount - smallCount) / 12;
|
|
|
|
|
|
colorSelect = ['interpolate', ['linear'], ['get', 'count'],
|
|
|
smallCount, '#43E1F8',
|
|
|
smallCount + unit * 2, '#49B0F9',
|
|
|
smallCount + unit * 3, '#3EABFA',
|
|
|
smallCount + unit * 4, '#27A2FB',
|
|
|
smallCount + unit * 5, '#34E6B1',
|
|
|
smallCount + unit * 6, '#1099FB',
|
|
|
smallCount + unit * 7, '#0695FB',
|
|
|
smallCount + unit * 8, '#058DEE',
|
|
|
smallCount + unit * 9, '#09C78E',
|
|
|
smallCount + unit * 10, '#047DD4',
|
|
|
smallCount + unit * 11, '#94D515',
|
|
|
smallCount + unit * 12, '#0568B0',
|
|
|
]
|
|
|
// console.log(colorSelect);
|
|
|
xianjie.features.forEach(function (item, index) {
|
|
|
var towninfo = townshipCaseCount.filter(function (it, idx) {
|
|
|
return it.name == item.properties.name
|
|
|
})
|
|
|
xianjie.features[index].properties.count = towninfo[0].reportCount;
|
|
|
xianjie.features[index].properties.newestCount = towninfo[0].todayCount;
|
|
|
})
|
|
|
}
|
|
|
|
|
|
// 获取乡镇等数据
|
|
|
loadMainMap();
|
|
|
//console.log("xianjie",xianjie);
|
|
|
|
|
|
var worldMapContainer1 = document.getElementById('distribution_map');
|
|
|
worldMapContainer1.style.height = "610px";
|
|
|
worldMapContainer1.style.width = "970px";
|
|
|
worldMapContainer1.style.position = "relative";
|
|
|
worldMapContainer1.style.left = "30px";
|
|
|
|
|
|
mapboxgl.accessToken = 'pk.eyJ1IjoibGllYmFvIiwiYSI6ImNsMXg1OHdtcTE3eDEza3FmODBmeXhldmIifQ.CYYMuikQnGHMtTNq60B_xA';
|
|
|
let map = new mapboxgl.Map({
|
|
|
container: 'distribution_map',
|
|
|
style: {
|
|
|
glyphs: "mapbox://fonts/mapbox/{fontstack}/{range}.pbf",
|
|
|
"version": 8,
|
|
|
"sources": {
|
|
|
// "raster-tiles": {
|
|
|
// "type": "raster",
|
|
|
// "tiles": ['http://t0.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=ed82a9d17a463c1c604f7e1f40293f25'],
|
|
|
// "tileSize": 256,
|
|
|
// }
|
|
|
},
|
|
|
"layers": [
|
|
|
// {
|
|
|
// "id": "tdt-img-tiles",
|
|
|
// "type": "raster",
|
|
|
// "source": "raster-tiles",
|
|
|
// "minzoom": 0,
|
|
|
// "maxzoom": 22
|
|
|
// },
|
|
|
]
|
|
|
},
|
|
|
zoom: 7.6,
|
|
|
center: [118.284576,35.199955],
|
|
|
});
|
|
|
var size = 200;
|
|
|
|
|
|
var pulsingDot = {
|
|
|
width: size,
|
|
|
height: size,
|
|
|
data: new Uint8Array(size * size * 4),
|
|
|
|
|
|
onAdd: function () {
|
|
|
var canvas = document.createElement('canvas');
|
|
|
canvas.width = this.width;
|
|
|
canvas.height = this.height;
|
|
|
this.context = canvas.getContext('2d');
|
|
|
},
|
|
|
|
|
|
render: function () {
|
|
|
var duration = 1000;
|
|
|
var t = (performance.now() % duration) / duration;
|
|
|
var radius = size / 2 * 0.3;
|
|
|
var outerRadius = size / 2 * 0.7 * t + radius;
|
|
|
var context = this.context;
|
|
|
context.clearRect(0, 0, this.width, this.height);
|
|
|
context.beginPath();
|
|
|
context.arc(this.width / 2, this.height / 2, outerRadius, 0, Math.PI * 2);
|
|
|
context.fillStyle = 'rgba(255, 200, 200,' + (1 - t) + ')';
|
|
|
context.fill();
|
|
|
context.beginPath();
|
|
|
context.arc(this.width / 2, this.height / 2, radius, 0, Math.PI * 2);
|
|
|
context.fillStyle = 'rgba(255, 100, 100, 1)';
|
|
|
context.strokeStyle = 'white';
|
|
|
context.lineWidth = 2 + 4 * (1 - t);
|
|
|
context.fill();
|
|
|
context.stroke();
|
|
|
this.data = context.getImageData(0, 0, this.width, this.height).data;
|
|
|
map.triggerRepaint();
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
|
|
|
var UAVMarkerArray = [];
|
|
|
var flvMarkerArray = []
|
|
|
var flvDataArray = []
|
|
|
var DroneMarkerArray = [];
|
|
|
var UAVInfo = [];
|
|
|
var getUAVMarkersTimer = null;
|
|
|
|
|
|
var newestCountMarkerArray = [];
|
|
|
var historyCountMarkerArray = [];
|
|
|
|
|
|
// 无人机
|
|
|
function loadUAVBox(data) {
|
|
|
// var data = {
|
|
|
// "account": "17853305026",
|
|
|
// "createtime": "2023-11-08 09:58:16",
|
|
|
// "height": 185,
|
|
|
// "ip": "192.168.10.101",
|
|
|
// "lat": 35.264007,
|
|
|
// "lng": 118.130002,
|
|
|
// "model": "airPlaneModel"
|
|
|
// }
|
|
|
if (flvMarkerArray.length > 0) {
|
|
|
$('#UAVView').attr("data-isActive", "true")
|
|
|
$('#UAVView').css("color", "#FFF726")
|
|
|
$("#UAVView").find(".centerimg").css('display', 'none')
|
|
|
$("#UAVView").find(".centerimgActive").css('display', 'inline-block')
|
|
|
for (var i = 0; i < window.flvMarkerArray.length; i++) {
|
|
|
window.flvMarkerArray[i].remove(map);
|
|
|
}
|
|
|
}
|
|
|
if (data && data.account) {
|
|
|
$('#UAVView').attr("data-isActive", "true")
|
|
|
$('#UAVView').css("color", "#FFF726")
|
|
|
$("#UAVView").find(".centerimg").css('display', 'none')
|
|
|
$("#UAVView").find(".centerimgActive").css('display', 'inline-block')
|
|
|
// console.log('loadUAVBox')
|
|
|
if (flvDataArray.find(info => info.account === data.account)) {
|
|
|
// console.log('已存在')
|
|
|
info = data
|
|
|
} else {
|
|
|
flvDataArray.push(data)
|
|
|
}
|
|
|
flvMarkerArray = []
|
|
|
flvDataArray.forEach(element => {
|
|
|
var arr = []
|
|
|
arr.push(element.lng)
|
|
|
arr.push(element.lat)
|
|
|
let coordinate = arr
|
|
|
let el = document.createElement('img')
|
|
|
el.id = 'markerId'
|
|
|
el.src = 'images/unmanned.png'
|
|
|
el.setAttribute("phone", element.account);
|
|
|
// console.log(coordinate)
|
|
|
let marker = new mapboxgl.Marker(el).setLngLat(coordinate).addTo(map) // 将标记添加到地图上
|
|
|
window.flvMarkerArray.push(marker);
|
|
|
el.addEventListener('click', (e) => {
|
|
|
$('.bgPop5,.pop5').show();
|
|
|
var phone = el.getAttribute("phone")
|
|
|
if(phone == '17853305026'){
|
|
|
vm.flvStr = "17853305026"
|
|
|
localStorage.setItem('flvStr', vm.flvStr)
|
|
|
childFlv.window.childFunction()
|
|
|
}else{
|
|
|
vm.flvStr = "http://live.hopetrytech.com/live/" + phone + ".flv"
|
|
|
// console.log(vm.flvStr)
|
|
|
// var player = TCPlayer('player-container-id', {}); // player-container-id 为播放器容器 ID,必须与 html 中一致
|
|
|
// player.src(vm.flvStr); // url 播放地址
|
|
|
localStorage.setItem('flvStr', vm.flvStr)
|
|
|
myWebSocket.send(data.account)
|
|
|
childFlv.window.childFunction()
|
|
|
}
|
|
|
})
|
|
|
});
|
|
|
for (var i = 0; i < window.flvMarkerArray.length; i++) {
|
|
|
window.flvMarkerArray[i].addTo(map);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 加载最新上报的数据点
|
|
|
function loadLastReportPoint(caseId, isFirst) {
|
|
|
if (UAVMarkerArray.length > 0) {
|
|
|
for (var i = 0; i < window.UAVMarkerArray.length; i++) {
|
|
|
window.UAVMarkerArray[i].remove(map);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
UAVMarkerArray = [];
|
|
|
|
|
|
$.ajax({
|
|
|
type: "GET",
|
|
|
url: BASE_URL + "/api/DroneScreenDisplay/GetCaseInfo?id=" + caseId,
|
|
|
dataType: "json",
|
|
|
headers: { "X-Token": localStorage.getItem("X-Token") },
|
|
|
async: false,
|
|
|
data: {},
|
|
|
beforeSend: function (xhr) { },
|
|
|
success: function (data) {
|
|
|
UAVInfo[0] = data.result;
|
|
|
console.log(!isFirst)
|
|
|
if (!isFirst) {
|
|
|
if (audio != null) {
|
|
|
audio.pause();
|
|
|
audio = null;
|
|
|
}
|
|
|
audio = "./audio/" + data.result.info.streetname + ".mp3";
|
|
|
console.log(audio);
|
|
|
audio = new Audio(audio);
|
|
|
audio.play();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
});
|
|
|
|
|
|
for (var i = 0; i < 1; i++) {
|
|
|
var el = document.createElement('div');
|
|
|
el.className = 'marker';
|
|
|
el.style.backgroundSize = '100%';
|
|
|
|
|
|
var point = document.createElement("div");
|
|
|
point.className = 'point';
|
|
|
|
|
|
el.appendChild(point);
|
|
|
el.setAttribute("data-caseId", UAVInfo[i].info.id);
|
|
|
|
|
|
var uavimg = document.createElement("div");
|
|
|
// uavimg.className="UAVImg";
|
|
|
|
|
|
var uavimgCon = document.createElement("div");
|
|
|
uavimgCon.className = "uavimgCon";
|
|
|
|
|
|
uavimgCon.appendChild(el);
|
|
|
uavimgCon.append(uavimg);
|
|
|
|
|
|
el.className = "uavmarker";
|
|
|
$(document).on("click", '.uavmarker', function (e) {
|
|
|
console.log($(this).attr("data-caseId"))
|
|
|
var caseid = $(this).attr("data-caseId")
|
|
|
var IMAGE_BASE_URL = "http://60.213.14.14:6070";
|
|
|
$.ajax({
|
|
|
type: "GET",
|
|
|
url: BASE_URL + "/api/DroneScreenDisplay/GetCaseInfo",
|
|
|
dataType: "json",
|
|
|
headers: { "X-Token": localStorage.getItem("X-Token") },
|
|
|
data: { id: caseid },
|
|
|
async: false,
|
|
|
beforeSend: function (xhr) { },
|
|
|
success: function (data) {
|
|
|
if (data.code == 200) {
|
|
|
$('.caseinfoNo').text(data.result.info.case_no);
|
|
|
$('.caseinfoDesc').text(data.result.info.case_description);
|
|
|
$('.caseinfoZoing').text(data.result.info.countyname + "/" + data.result.info.streetname + "/" + data.result.info.communityname);
|
|
|
$('.caseinfoType').text(data.result.info.typename);
|
|
|
$('.caseinfoMarker').text(data.result.info.remark);
|
|
|
$(".caseinfoAddress").text(data.result.info.address);
|
|
|
$(".caseinfoTime").text(data.result.info.createtime);
|
|
|
$(".caseinfoArea").text(data.result.info.area);
|
|
|
$(".caseinfoImages").empty();
|
|
|
for (var i = 0; i < data.result.pic_list.length; i++) {
|
|
|
var url = IMAGE_BASE_URL + "/" + data.result.pic_list[i];
|
|
|
var appendStr = "<img src='" + IMAGE_BASE_URL + "/S_" + data.result.pic_list[i] + "' class='caseInfoImg' data-imgSrc='" + url + "' style='width:230px;height:100px;margin-right:15px;'/>";
|
|
|
$(".caseinfoImages").append(appendStr);
|
|
|
}
|
|
|
getkmcamera(data.result)
|
|
|
}
|
|
|
$(".caseInfoImg").click(function () {
|
|
|
$(".imgContainers").empty();
|
|
|
$(".imgDetail").show()
|
|
|
$(".imgDetail").css({ "display": "flex" });
|
|
|
var imgPath = $(this).attr("data-imgSrc");
|
|
|
var appendStrPath = "<img src='" + imgPath + "' style='width:100%;height:100%;'/>";
|
|
|
$(".imgContainers").append(appendStrPath);
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
//console.log($(this).attr("data-caseId"));
|
|
|
$('.bgPop2,.pop2').show();
|
|
|
})
|
|
|
// document.getElementsByClassName('uavmarker').addEventListener('click', (e) => {
|
|
|
// // console.log(e.path[1].getAttribute("data-caseId"));
|
|
|
// console.log(e)
|
|
|
// console.log($(this))
|
|
|
// console.log($(this).getAttribute("data-caseId"))
|
|
|
// // window.alert(marker.properties.message);
|
|
|
// var IMAGE_BASE_URL = "http://60.213.14.14:6070";
|
|
|
// $.ajax({
|
|
|
// type: "GET",
|
|
|
// url: BASE_URL + "/api/DroneScreenDisplay/GetCaseInfo",
|
|
|
// dataType: "json",
|
|
|
// headers: { "X-Token": localStorage.getItem("X-Token") },
|
|
|
// data: { id: e.path[1].getAttribute("data-caseId") },
|
|
|
// async: false,
|
|
|
// beforeSend: function (xhr) { },
|
|
|
// success: function (data) {
|
|
|
// if (data.code == 200) {
|
|
|
// $('.caseinfoNo').text(data.result.info.case_no);
|
|
|
// $('.caseinfoDesc').text(data.result.info.case_description);
|
|
|
// $('.caseinfoZoing').text(data.result.info.countyname + "/" + data.result.info.streetname + "/" + data.result.info.communityname);
|
|
|
// $('.caseinfoType').text(data.result.info.typename);
|
|
|
// $('.caseinfoMarker').text(data.result.info.remark);
|
|
|
// $(".caseinfoAddress").text(data.result.info.address);
|
|
|
// $(".caseinfoTime").text(data.result.info.createtime);
|
|
|
// $(".caseinfoArea").text(data.result.info.area);
|
|
|
// $(".caseinfoImages").empty();
|
|
|
// for (var i = 0; i < data.result.pic_list.length; i++) {
|
|
|
// var url = IMAGE_BASE_URL + "/" + data.result.pic_list[i];
|
|
|
// var appendStr = "<img src='" + IMAGE_BASE_URL + "/S_" + data.result.pic_list[i] + "' class='caseInfoImg' data-imgSrc='" + url + "' style='width:230px;height:100px;margin-right:15px;'/>";
|
|
|
// $(".caseinfoImages").append(appendStr);
|
|
|
// }
|
|
|
// }
|
|
|
// $(".caseInfoImg").click(function () {
|
|
|
// $(".imgContainers").empty();
|
|
|
// $(".imgDetail").show()
|
|
|
// $(".imgDetail").css({ "display": "flex" });
|
|
|
// var imgPath = $(this).attr("data-imgSrc");
|
|
|
// var appendStrPath = "<img src='" + imgPath + "' style='width:100%;height:100%;'/>";
|
|
|
// $(".imgContainers").append(appendStrPath);
|
|
|
// })
|
|
|
// }
|
|
|
// });
|
|
|
// //console.log($(this).attr("data-caseId"));
|
|
|
// $('.bgPop2,.pop2').show();
|
|
|
// });
|
|
|
console.log(UAVInfo[i])
|
|
|
var coordinate = [UAVInfo[i].lng, UAVInfo[i].lat];
|
|
|
// var UAVmarker = new mapboxgl.Marker(uavimgCon).setLngLat(coordinate).addTo(map);
|
|
|
var UAVmarker = new mapboxgl.Marker(uavimgCon).setLngLat(coordinate);
|
|
|
|
|
|
// var UAVmarker2 = new mapboxgl.Marker(uavimgCon).setLngLat([117.72339712649222,35.05450202665419]).addTo(map);
|
|
|
window.UAVMarkerArray.push(UAVmarker);
|
|
|
|
|
|
for (var i = 0; i < window.UAVMarkerArray.length; i++) {
|
|
|
window.UAVMarkerArray[i].addTo(map);
|
|
|
}
|
|
|
|
|
|
// console.log(UAVMarkerArray);
|
|
|
|
|
|
}
|
|
|
}
|
|
|
function loadNewestReportPoint() {
|
|
|
// console.log("load++");
|
|
|
// 加载最新数据
|
|
|
loadMainMap();
|
|
|
|
|
|
if (newestCountMarkerArray.length > 0) {
|
|
|
for (var i = 0; i < newestCountMarkerArray.length; i++) {
|
|
|
newestCountMarkerArray[i].remove(map);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (historyCountMarkerArray.length > 0) {
|
|
|
for (var i = 0; i < historyCountMarkerArray.length; i++) {
|
|
|
historyCountMarkerArray[i].remove(map);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
newestCountMarkerArray = [];
|
|
|
historyCountMarkerArray = [];
|
|
|
|
|
|
// console.log("townshipCaseCount111",townshipCaseCount);
|
|
|
let townships = [
|
|
|
{
|
|
|
name: "临沭县",
|
|
|
coordinate: [118.648379,34.917062]
|
|
|
}, {
|
|
|
name: "郯城县",
|
|
|
coordinate: [118.342963,34.614741],
|
|
|
}, {
|
|
|
name: "费县",
|
|
|
coordinate: [117.968869,35.269174],
|
|
|
}, {
|
|
|
name: "河东区",
|
|
|
coordinate: [118.398296,35.085004],
|
|
|
}, {
|
|
|
name: "兰山区",
|
|
|
coordinate: [118.327667,35.061631],
|
|
|
}, {
|
|
|
name: "罗庄区",
|
|
|
coordinate: [118.284795,34.997204],
|
|
|
}, {
|
|
|
name: "沂南县",
|
|
|
coordinate: [118.455395,35.547002],
|
|
|
}, {
|
|
|
name: "沂水县",
|
|
|
coordinate: [118.634543,35.787029],
|
|
|
}, {
|
|
|
name: "兰陵县",
|
|
|
coordinate: [118.049968,34.855573],
|
|
|
}, {
|
|
|
name: "平邑县",
|
|
|
coordinate: [117.631884,35.511519],
|
|
|
}, {
|
|
|
name: "莒南县",
|
|
|
coordinate: [118.838322,35.175911],
|
|
|
}, {
|
|
|
name: "蒙阴县",
|
|
|
coordinate: [117.943271,35.712435],
|
|
|
}
|
|
|
];
|
|
|
|
|
|
for (var j = 0; j < townships.length; j++) {
|
|
|
var arr = townshipCaseCount.filter((item, index) => {
|
|
|
// console.log(item.name);
|
|
|
if (item.name == townships[j].name) {
|
|
|
townships[j].newestCount = item.todayCount;
|
|
|
townships[j].historyCount = item.historyCount;
|
|
|
}
|
|
|
return item.name == townships[j].name;
|
|
|
})
|
|
|
}
|
|
|
|
|
|
for (var t = 0; t < townships.length; t++) {
|
|
|
var townshipContainer = document.createElement('div');
|
|
|
townshipContainer.className = 'townshipParent';
|
|
|
|
|
|
|
|
|
var townshipChildren = document.createElement("div");
|
|
|
townshipChildren.className = 'townshipChildren';
|
|
|
|
|
|
var townshipName = document.createElement("div");
|
|
|
townshipName.className = 'townshipName';
|
|
|
var mytext = document.createTextNode("历史线索:" + townships[t].historyCount);
|
|
|
townshipName.appendChild(mytext);
|
|
|
|
|
|
|
|
|
townshipChildren.appendChild(townshipName);
|
|
|
townshipContainer.appendChild(townshipChildren);
|
|
|
|
|
|
var township = new mapboxgl.Marker(townshipContainer).setLngLat([townships[t].coordinate[0], townships[t].coordinate[1] - 0.001]);
|
|
|
historyCountMarkerArray.push(township);
|
|
|
|
|
|
}
|
|
|
|
|
|
for (var t = 0; t < townships.length; t++) {
|
|
|
var newestParent = document.createElement('div');
|
|
|
newestParent.className = 'newestParent';
|
|
|
|
|
|
|
|
|
var newestChildren = document.createElement("div");
|
|
|
newestChildren.className = 'newestChildren';
|
|
|
|
|
|
var newestName = document.createElement("div");
|
|
|
newestName.className = 'newestName';
|
|
|
var mytext = document.createTextNode("最新线索:" + townships[t].newestCount);
|
|
|
newestName.appendChild(mytext);
|
|
|
|
|
|
|
|
|
newestChildren.appendChild(newestName);
|
|
|
newestParent.appendChild(newestChildren);
|
|
|
|
|
|
|
|
|
var township = new mapboxgl.Marker(newestParent).setLngLat([townships[t].coordinate[0], townships[t].coordinate[1]]);
|
|
|
|
|
|
newestCountMarkerArray.push(township);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
function loadDroneMarker() {
|
|
|
if (DroneMarkerArray.length > 0) {
|
|
|
for (var i = 0; i < DroneMarkerArray.length; i++) {
|
|
|
DroneMarkerArray[i].remove(map);
|
|
|
}
|
|
|
}
|
|
|
DroneMarkerArray = [];
|
|
|
|
|
|
$.ajax({
|
|
|
type: "GET",
|
|
|
url: BASE_URL + "/api/DroneScreenDisplay/GetDroneLocationPointsFalse",
|
|
|
dataType: "json",
|
|
|
headers: { "X-Token": localStorage.getItem("X-Token") },
|
|
|
async: false,
|
|
|
data: {},
|
|
|
beforeSend: function (xhr) { },
|
|
|
success: function (data) {
|
|
|
if (data.code == 200) {
|
|
|
let results = data.result;
|
|
|
for (var i = 0; i < results.length; i++) {
|
|
|
var el = document.createElement('div');
|
|
|
el.className = 'marker';
|
|
|
el.style.backgroundSize = '100%';
|
|
|
|
|
|
var point = document.createElement("div");
|
|
|
point.className = 'point';
|
|
|
|
|
|
el.appendChild(point);
|
|
|
// el.setAttribute("data-caseId",UAVInfo[i].info.id);
|
|
|
|
|
|
var uavimg = document.createElement("div");
|
|
|
// uavimg.className="UAVImg";
|
|
|
|
|
|
var uavimgCon = document.createElement("div");
|
|
|
uavimgCon.className = "uavimgCon";
|
|
|
|
|
|
uavimgCon.appendChild(el);
|
|
|
uavimgCon.append(uavimg);
|
|
|
|
|
|
el.className = "uavmarker";
|
|
|
|
|
|
var coordinate = results[i].point[0].point.split(",");
|
|
|
console.log("coordinate", coordinate);
|
|
|
var DroneMarker = new mapboxgl.Marker(uavimgCon).setLngLat(coordinate).addTo(map);
|
|
|
DroneMarkerArray.push(DroneMarkerArray);
|
|
|
// var DroneMarker = new mapboxgl.Marker(uavimgCon).setLngLat(coordinate);
|
|
|
|
|
|
// var UAVmarker2 = new mapboxgl.Marker(uavimgCon).setLngLat([117.72339712649222,35.05450202665419]).addTo(map);
|
|
|
// DroneMarkerArray.push(DroneMarker);
|
|
|
|
|
|
// for(var i=0;i<DroneMarkerArray.length;i++){
|
|
|
// DroneMarkerArray[i].addTo(map);
|
|
|
// }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}
|
|
|
map.on('load', function () {
|
|
|
// loadLastReportPoint(news_report[0].id, true);
|
|
|
|
|
|
loadNewestReportPoint();
|
|
|
|
|
|
// loadDroneMarker();
|
|
|
// 马庄镇
|
|
|
// var data = {
|
|
|
// "account": "17853305026",
|
|
|
// "createtime": "2023-11-08 09:58:16",
|
|
|
// "height": 185,
|
|
|
// "ip": "192.168.10.101",
|
|
|
// "lat": 35.104007,
|
|
|
// "lng": 118.01002,
|
|
|
// "model": "airPlaneModel"
|
|
|
// }
|
|
|
// loadUAVBox(data)
|
|
|
|
|
|
map.loadImage(
|
|
|
'images/position.png',
|
|
|
(error, image) => {
|
|
|
if (error) throw error;
|
|
|
|
|
|
// Add the image to the map style.
|
|
|
map.addImage('cat', image);
|
|
|
}
|
|
|
);
|
|
|
map.loadImage(
|
|
|
'images/history.png',
|
|
|
(error, image) => {
|
|
|
if (error) throw error;
|
|
|
|
|
|
// Add the image to the map style.
|
|
|
map.addImage('history-icon', image);
|
|
|
}
|
|
|
);
|
|
|
map.loadImage(
|
|
|
'images/unmanned.png',
|
|
|
(error, image) => {
|
|
|
if (error) throw error;
|
|
|
|
|
|
// Add the image to the map style.
|
|
|
map.addImage('uav-icon', image);
|
|
|
}
|
|
|
);
|
|
|
map.loadImage(
|
|
|
'images/camera.png',
|
|
|
(error, image) => {
|
|
|
if (error) throw error;
|
|
|
|
|
|
// Add the image to the map style.
|
|
|
map.addImage('monitor-icon', image);
|
|
|
}
|
|
|
);
|
|
|
// 背景图层
|
|
|
map.addLayer({
|
|
|
"id": "background-id", // 唯一 id (必填)
|
|
|
"type": "background", // 类型(必填)
|
|
|
"minzoom": 0, // 最小层级(可选,取值范围为 0 ~ 24。当 style 的 zoom 小于此 minzoom 时,layer 将被隐藏)
|
|
|
"maxzoom": 24, // 最大层级(可选,取值范围为 0 ~ 24。当 style 的 zoom 大于此 maxzoom 时,layer 将被隐藏)
|
|
|
"paint": { // 绘制类属性
|
|
|
"background-color": "#0B122E", // 背景颜色(可选,默认值为 #000000。如果设置了 background-pattern,则 background-color 将无效)
|
|
|
"background-opacity": 1 // 背景不透明度(可选,取值范围为 0 ~ 1,默认值为 1)
|
|
|
}
|
|
|
}
|
|
|
);
|
|
|
map.addImage('pulsing-dot', pulsingDot, { pixelRatio: 4 });
|
|
|
|
|
|
//卫星地图
|
|
|
map.addLayer({
|
|
|
'id': 'weixingditu',
|
|
|
'type': 'raster',
|
|
|
'source': {
|
|
|
"type": "raster",
|
|
|
"tiles": ['https://t0.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=ff98577d147820843ec2d04da3c5bad4'],
|
|
|
"tileSize": 256,
|
|
|
},
|
|
|
'paint': {
|
|
|
|
|
|
},
|
|
|
'layout': {
|
|
|
"visibility": "none"
|
|
|
},
|
|
|
"metadata": {
|
|
|
"zIndex": 1
|
|
|
}
|
|
|
});
|
|
|
// 添加影像图
|
|
|
map.addLayer({
|
|
|
'id': 'yingxiang',
|
|
|
'type': 'raster',
|
|
|
'source': {
|
|
|
"type": "raster",
|
|
|
"tiles": ['https://t0.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=ff98577d147820843ec2d04da3c5bad4'],
|
|
|
"tileSize": 256,
|
|
|
},
|
|
|
'paint': {
|
|
|
|
|
|
},
|
|
|
'layout': {
|
|
|
"visibility": "none"
|
|
|
},
|
|
|
"metadata": {
|
|
|
"zIndex": 2
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// 县界图层
|
|
|
map.addLayer({
|
|
|
'id': 'countyLayer',
|
|
|
'type': 'fill',
|
|
|
'source': {
|
|
|
'type': 'geojson',
|
|
|
'data': countygeojson,
|
|
|
},
|
|
|
'layout': {
|
|
|
"visibility": "none"
|
|
|
},
|
|
|
'paint': {
|
|
|
'fill-color': "#1f3cb1",
|
|
|
'fill-opacity': 0.8,
|
|
|
},
|
|
|
"metadata": {
|
|
|
"zIndex": 3
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// 镇界图层面
|
|
|
map.addSource("townshipSource", {
|
|
|
'type': 'geojson',
|
|
|
'data': xianjie
|
|
|
});
|
|
|
map.addSource("townshipSource1", {
|
|
|
'type': 'geojson',
|
|
|
'data': xianjie
|
|
|
});
|
|
|
map.addLayer({
|
|
|
'id': 'townshipLayer',
|
|
|
'type': 'fill',
|
|
|
'source': 'townshipSource',
|
|
|
'layout': {
|
|
|
"visibility": "none"
|
|
|
},
|
|
|
'paint': {
|
|
|
'fill-color': colorSelect,
|
|
|
'fill-opacity': 1,
|
|
|
}
|
|
|
});
|
|
|
|
|
|
|
|
|
// 镇界图层线
|
|
|
map.addLayer({
|
|
|
'id': 'townshipLayerLine',
|
|
|
'type': 'line',
|
|
|
'source': 'townshipSource',
|
|
|
'layout': {
|
|
|
"visibility": "none"
|
|
|
},
|
|
|
'paint': {
|
|
|
'line-color': "#3f52be",
|
|
|
'line-width': 1,
|
|
|
// 'line-pattern':1
|
|
|
}
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
map.addSource("states", {
|
|
|
"type": "geojson",
|
|
|
"data": xianjie
|
|
|
});
|
|
|
|
|
|
// The feature-state dependent fill-opacity expression will render the hover effect
|
|
|
// when a feature's hover state is set to true.
|
|
|
map.addLayer({
|
|
|
"id": "state-fills",
|
|
|
"type": "fill",
|
|
|
"source": "states",
|
|
|
"layout": {},
|
|
|
"paint": {
|
|
|
"fill-color": colorSelect,
|
|
|
"fill-opacity": ["case",
|
|
|
["boolean", ["feature-state", "hover"], false],
|
|
|
1,
|
|
|
0.6
|
|
|
]
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// 村界
|
|
|
map.addLayer({
|
|
|
'id': 'villageLayer',
|
|
|
'type': 'fill',
|
|
|
'source': {
|
|
|
'type': 'geojson',
|
|
|
'data': villageGeoJson
|
|
|
},
|
|
|
'layout': {
|
|
|
"visibility": "none"
|
|
|
},
|
|
|
'paint': {
|
|
|
'fill-color': [
|
|
|
'interpolate',
|
|
|
['linear'],
|
|
|
['get', 'OBJECTID'],
|
|
|
0,
|
|
|
'#0234fb',
|
|
|
3,
|
|
|
'#0937ef',
|
|
|
6,
|
|
|
'#0f39e2',
|
|
|
9,
|
|
|
'#143ad4',
|
|
|
12,
|
|
|
'#1a3abd',
|
|
|
15,
|
|
|
'#1f3cb1',
|
|
|
18,
|
|
|
'#233b9e',
|
|
|
21,
|
|
|
'#364686',
|
|
|
24,
|
|
|
'#6e81ca',
|
|
|
27,
|
|
|
'#0234fb',
|
|
|
30,
|
|
|
'#0937ef',
|
|
|
33,
|
|
|
'#0f39e2',
|
|
|
36,
|
|
|
'#143ad4',
|
|
|
39,
|
|
|
'#1a3abd',
|
|
|
42,
|
|
|
'#1f3cb1',
|
|
|
45,
|
|
|
'#233b9e',
|
|
|
48,
|
|
|
'#364686',
|
|
|
51,
|
|
|
'#6e81ca'
|
|
|
],
|
|
|
'fill-opacity': 1,
|
|
|
}
|
|
|
});
|
|
|
// 历史线索数量
|
|
|
map.addLayer({
|
|
|
id: `historyCaseLayer`,
|
|
|
type: 'symbol',
|
|
|
source: 'townshipSource',
|
|
|
filter: ['!', ['has', 'point_count']],
|
|
|
layout: {
|
|
|
'icon-image': '',
|
|
|
visibility: 'none',
|
|
|
'text-field': '历史线索:{count}',//此属性为需要显示的字段
|
|
|
'text-size': 12,
|
|
|
'text-offset': [0, 1],
|
|
|
'text-allow-overlap': false, // 是否允许文本重叠(可选,默认值为 false。
|
|
|
'text-anchor': 'top',
|
|
|
|
|
|
},
|
|
|
paint: {
|
|
|
// 绘制类属性
|
|
|
// 文本类属性(需要设置 text-field)样式才生效
|
|
|
'text-color': '#ffffff', // 文本的颜色
|
|
|
'text-translate': [0, 0], // 文本的平移(可选,通过平移 [x, y] 达到一定的偏移量。默认值为 [0, 0]
|
|
|
'text-translate-anchor': 'map', // 文本的平移锚点,即相对的参考物(可选,可选值为 map、viewport,默认为 map)
|
|
|
},
|
|
|
})
|
|
|
// 最新线索数量
|
|
|
map.addLayer({
|
|
|
id: `newCaseLayer`,
|
|
|
type: 'symbol',
|
|
|
source: 'townshipSource',
|
|
|
filter: ['!', ['has', 'point_count']],
|
|
|
layout: {
|
|
|
'icon-image': '',
|
|
|
visibility: 'none',
|
|
|
'text-field': '最新线索:{newestCount}',//此属性为需要显示的字段
|
|
|
'text-size': 12,
|
|
|
'text-offset': [0, -1],
|
|
|
'text-allow-overlap': false, // 是否允许文本重叠(可选,默认值为 false。
|
|
|
'text-anchor': 'top',
|
|
|
|
|
|
},
|
|
|
paint: {
|
|
|
// 绘制类属性
|
|
|
// 文本类属性(需要设置 text-field)样式才生效
|
|
|
'text-color': '#ffffff', // 文本的颜色
|
|
|
'text-translate': [0, 0], // 文本的平移(可选,通过平移 [x, y] 达到一定的偏移量。默认值为 [0, 0]
|
|
|
'text-translate-anchor': 'map', // 文本的平移锚点,即相对的参考物(可选,可选值为 map、viewport,默认为 map)
|
|
|
|
|
|
},
|
|
|
})
|
|
|
|
|
|
// 监控图层
|
|
|
map.addLayer({
|
|
|
"id": "monitorLayer",
|
|
|
"type": "symbol",
|
|
|
"source": {
|
|
|
"type": "geojson",
|
|
|
"data": {
|
|
|
"type": "FeatureCollection",
|
|
|
"features": [{
|
|
|
"type": "Feature",
|
|
|
"geometry": {
|
|
|
"type": "Point",
|
|
|
"coordinates": [117.7917792737033, 35.13858050971585]
|
|
|
}
|
|
|
}, {
|
|
|
"type": "Feature",
|
|
|
"geometry": {
|
|
|
"type": "Point",
|
|
|
"coordinates": [117.72339712649222, 35.05450202665419]
|
|
|
}
|
|
|
}, {
|
|
|
"type": "Feature",
|
|
|
"geometry": {
|
|
|
"type": "Point",
|
|
|
"coordinates": [117.95926374172524, 35.08209724883]
|
|
|
}
|
|
|
}]
|
|
|
}
|
|
|
},
|
|
|
"layout": {
|
|
|
"visibility": "none",
|
|
|
"icon-image": "monitor-icon"
|
|
|
}
|
|
|
});
|
|
|
// 监控图层
|
|
|
map.addLayer({
|
|
|
"id": "monitorTwoLayer",
|
|
|
"type": "symbol",
|
|
|
"source": {
|
|
|
"type": "geojson",
|
|
|
// "data": shexiangtouJSON
|
|
|
"data": jiankongJson
|
|
|
},
|
|
|
"layout": {
|
|
|
"visibility": "none",
|
|
|
"icon-image": "monitor-icon"
|
|
|
}
|
|
|
});
|
|
|
// 无人机
|
|
|
map.addLayer({
|
|
|
"id": "UAVView",
|
|
|
"type": "symbol",
|
|
|
"source": {
|
|
|
"type": "geojson",
|
|
|
"data": {
|
|
|
"type": "FeatureCollection",
|
|
|
// "features": [{
|
|
|
// "type": "Feature",
|
|
|
// "geometry": {
|
|
|
// "type": "Point",
|
|
|
// "coordinates": [118.130002, 35.264007]
|
|
|
// }
|
|
|
// }, {
|
|
|
// "type": "Feature",
|
|
|
// "geometry": {
|
|
|
// "type": "Point",
|
|
|
// "coordinates": [118.01002, 35.104007]
|
|
|
// }
|
|
|
// }, {
|
|
|
// "type": "Feature",
|
|
|
// "geometry": {
|
|
|
// "type": "Point",
|
|
|
// "coordinates": [118.030002, 35.204007]
|
|
|
// }
|
|
|
// }]
|
|
|
features: []
|
|
|
}
|
|
|
},
|
|
|
"layout": {
|
|
|
"visibility": "none",
|
|
|
"icon-image": "monitor-icon"
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// 无人机图层
|
|
|
// map.addLayer({
|
|
|
// "id": "uavLayer1",
|
|
|
// "type": "symbol",
|
|
|
// "source": {
|
|
|
// "type": "geojson",
|
|
|
// "data": {
|
|
|
// "type": "FeatureCollection",
|
|
|
// "features": [{
|
|
|
// "type": "Feature",
|
|
|
// "geometry": {
|
|
|
// "type": "Point",
|
|
|
// "coordinates": [118.130002, 35.264007]
|
|
|
// }
|
|
|
// },{
|
|
|
// "type": "Feature",
|
|
|
// "geometry": {
|
|
|
// "type": "Point",
|
|
|
// "coordinates": [118.01002, 35.104007]
|
|
|
// }
|
|
|
// },{
|
|
|
// "type": "Feature",
|
|
|
// "geometry": {
|
|
|
// "type": "Point",
|
|
|
// "coordinates": [118.030002, 35.204007]
|
|
|
// }
|
|
|
// }]
|
|
|
// }
|
|
|
// },
|
|
|
// "layout": {
|
|
|
// "visibility":"none",
|
|
|
// "icon-image": "pulsing-dot"
|
|
|
// }
|
|
|
// });
|
|
|
|
|
|
|
|
|
// $.ajax({
|
|
|
// type: "GET",
|
|
|
// url: BASE_URL + "/api/DroneScreenDisplay/GetDroneLocationPointsFalse",
|
|
|
// dataType: "json",
|
|
|
// async:false,
|
|
|
// data:{},
|
|
|
// beforeSend: function(xhr) {},
|
|
|
// success: function(data){
|
|
|
// let UAVArray = [];
|
|
|
// data.result.forEach(function(item,index){
|
|
|
// let UAVObj = {
|
|
|
// marker: new mapboxgl.Marker(),
|
|
|
// UAVFly:function(lng,lat){
|
|
|
// this.marker.setLngLat([lng,lat]).addTo(map)
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
// UAVArray[index] = marker;
|
|
|
// })
|
|
|
// }
|
|
|
// });
|
|
|
|
|
|
|
|
|
// 最新上报图层
|
|
|
//最新上报
|
|
|
var newsReportData = [];
|
|
|
var newsReportDataGeoJson = [];
|
|
|
$.ajax({
|
|
|
type: "GET",
|
|
|
url: BASE_URL + "/api/DroneScreenDisplay/LoadDroneCase",
|
|
|
dataType: "json",
|
|
|
headers: { "X-Token": localStorage.getItem("X-Token") },
|
|
|
async: false,
|
|
|
data: {},
|
|
|
beforeSend: function (xhr) { },
|
|
|
success: function (data) {
|
|
|
newsReportData = data.result;
|
|
|
newsReportData.forEach(function (item, index) {
|
|
|
if (item.lng && item.lat) {
|
|
|
var reportCase = {
|
|
|
"id": item.id,
|
|
|
"type": "Feature",
|
|
|
"geometry": {
|
|
|
"type": "Point",
|
|
|
"coordinates": [item.lng, item.lat],
|
|
|
},
|
|
|
"properties": {
|
|
|
"id": item.id
|
|
|
},
|
|
|
}
|
|
|
// newsReportDataGeoJson.features.push(reportCase);
|
|
|
var uavimg = document.createElement("div");
|
|
|
uavimg.className = "POSIRIONImg";
|
|
|
var uavimgCon = document.createElement("div");
|
|
|
uavimgCon.className = "uavimgCon";
|
|
|
uavimgCon.append(uavimg);
|
|
|
var coordinate = [item.lng, item.lat];
|
|
|
// var UAVmarker = new mapboxgl.Marker(uavimgCon).setLngLat(coordinate).addTo(map);
|
|
|
var UAVmarker = new mapboxgl.Marker(uavimgCon).setLngLat(coordinate);
|
|
|
newsReportDataGeoJson.push(UAVmarker);
|
|
|
newsReportDataGeoJsonArr.push(UAVmarker)
|
|
|
}
|
|
|
if (index == newsReportData.length - 1) {
|
|
|
|
|
|
}
|
|
|
});
|
|
|
|
|
|
|
|
|
}
|
|
|
});
|
|
|
newsReportDataGeoJsonArr.forEach(item => {
|
|
|
// item.addTo(map);
|
|
|
})
|
|
|
// map.addLayer({
|
|
|
// "id": "newCaseLayer",
|
|
|
// "type": "symbol",
|
|
|
// "source": {
|
|
|
// "type":"geojson",
|
|
|
// "data":newsReportDataGeoJson
|
|
|
// },
|
|
|
// "layout": {
|
|
|
// "visibility":"none",
|
|
|
// "icon-image": "cat"
|
|
|
// }
|
|
|
// });
|
|
|
//历史线索
|
|
|
function getPolygonCenter(pList) { //获取多边形中心点
|
|
|
var area = 0;
|
|
|
var x = 0;
|
|
|
var y = 0;
|
|
|
for (var i = 1; i <= pList.length; i++) {
|
|
|
var lat = pList[i % pList.length][0];
|
|
|
var lng = pList[i % pList.length][1];
|
|
|
var nextLat = pList[i - 1][0];
|
|
|
var nextLng = pList[i - 1][1];
|
|
|
var temp = (lat * nextLng - lng * nextLat) / 2;
|
|
|
area += temp;
|
|
|
x += (temp * (lat + nextLat)) / 3;
|
|
|
y += (temp * (lng + nextLng)) / 3;
|
|
|
}
|
|
|
x = x / area;
|
|
|
y = y / area;
|
|
|
return [x, y];
|
|
|
};
|
|
|
var historyCaseGeoJson = {};
|
|
|
|
|
|
$.ajax({
|
|
|
type: "GET",
|
|
|
url: "http://175.27.168.120:8080/geoserver/hangfei/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=hangfei%3Aanjianjilu&maxFeatures=1000000000&outputFormat=application%2Fjson",
|
|
|
dataType: "json",
|
|
|
headers: { "X-Token": localStorage.getItem("X-Token") },
|
|
|
async: false,
|
|
|
data: {},
|
|
|
beforeSend: function (xhr) { },
|
|
|
success: function (data) {
|
|
|
data.features.forEach(function (item, index) {
|
|
|
// data.features[index].geometry.type="Point";
|
|
|
// data.features[index].geometry.coordinates=getPolygonCenter(item.geometry.coordinates[0][0]);
|
|
|
var uavimg = document.createElement("div");
|
|
|
uavimg.className = "HISTORyImg";
|
|
|
var uavimgCon = document.createElement("div");
|
|
|
uavimgCon.className = "uavimgCon";
|
|
|
uavimgCon.append(uavimg);
|
|
|
var coordinate = getPolygonCenter(item.geometry.coordinates[0][0])
|
|
|
var UAVmarker = new mapboxgl.Marker(uavimgCon).setLngLat(coordinate);
|
|
|
historyCaseGeoJsonArr.push(UAVmarker);
|
|
|
})
|
|
|
historyCaseGeoJson = data;
|
|
|
//console.log(data);
|
|
|
// getPolygonCenter(data.features.geometry.coordinates[0][0])
|
|
|
}
|
|
|
});
|
|
|
// map.addLayer({
|
|
|
// "id": "historyCaseLayer",
|
|
|
// "type": "symbol",
|
|
|
// "source": {
|
|
|
// "type": "geojson",
|
|
|
// "data": historyCaseGeoJson,
|
|
|
// },
|
|
|
// "layout": {
|
|
|
// "visibility":"none",
|
|
|
// "icon-image": "history-icon"
|
|
|
// }
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// map.addLayer({
|
|
|
// "id": "state-borders",
|
|
|
// "type": "line",
|
|
|
// "source": "states",
|
|
|
// "layout": {},
|
|
|
// "paint": {
|
|
|
// "line-color": "#627BC1",
|
|
|
// "line-width": 2
|
|
|
// }
|
|
|
// });
|
|
|
|
|
|
// map.addSource('wms-test-source', {
|
|
|
// 'type': 'raster',
|
|
|
// // use the tiles option to specify a WMS tile source URL
|
|
|
// // https://docs.mapbox.com/mapbox-gl-js/style-spec/sources/
|
|
|
// 'tiles': [
|
|
|
// 'http://175.27.168.120:8080/geoserver/feixian/wms?service=WMS&version=1.1.0&request=GetMap&layers=feixian%3Ayingxiang&bbox=581713.2990911475%2C3882682.1443521073%2C610409.5371911475%2C3916536.5138721075&width=650&height=768&srs=EPSG%3A4509&format=application/openlayers'
|
|
|
// ],
|
|
|
// 'tileSize': 256
|
|
|
// });
|
|
|
// map.addLayer(
|
|
|
// {
|
|
|
// 'id': 'wms-test-layer',
|
|
|
// 'type': 'raster',
|
|
|
// 'source': 'wms-test-source',
|
|
|
// 'paint': {}
|
|
|
// },
|
|
|
// // 'aeroway-line'
|
|
|
// );
|
|
|
|
|
|
|
|
|
var popup = new mapboxgl.Popup({
|
|
|
closeButton: false,
|
|
|
closeOnClick: false,
|
|
|
|
|
|
});
|
|
|
|
|
|
map.on('mousemove', 'townshipLayer', (e) => {
|
|
|
// e.preventDefault();
|
|
|
console.log(e)
|
|
|
map.getCanvas().style.cursor = 'pointer';
|
|
|
// var coordinates = e.features[0].geometry.coordinates.slice();
|
|
|
// const description = e.features[0].properties.description;
|
|
|
var townshipInfo = townshipCaseCount.filter(item => {
|
|
|
return item.name == e.features[0].properties.XZQMC;
|
|
|
})
|
|
|
|
|
|
var str = "乡镇名称:" + e.features[0].properties.XZQMC + "<br> <br>线索数量:" + townshipInfo[0].reportCount;
|
|
|
popup.setLngLat([e.lngLat.lng, e.lngLat.lat]).setHTML("<p style='color:#333;font-weight:bold;'>" + str + "</p>").addTo(map);
|
|
|
|
|
|
});
|
|
|
|
|
|
var hoveredStateId = null;
|
|
|
map.on("click", function (e) {
|
|
|
// console.log(e);
|
|
|
})
|
|
|
map.on("mousemove", "townshipLayer", function (e) {
|
|
|
if (e.features.length > 0) {
|
|
|
if (hoveredStateId) {
|
|
|
map.setFeatureState({ source: 'townshipSource', id: hoveredStateId }, { hover: false });
|
|
|
}
|
|
|
hoveredStateId = e.features[0].id;
|
|
|
map.setFeatureState({ source: 'townshipSource', id: hoveredStateId }, { hover: true });
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// When the mouse leaves the state-fill layer, update the feature state of the
|
|
|
// previously hovered feature.
|
|
|
map.on("mouseleave", "townshipLayer", function () {
|
|
|
if (hoveredStateId) {
|
|
|
map.setFeatureState({ source: 'townshipSource', id: hoveredStateId }, { hover: false });
|
|
|
}
|
|
|
hoveredStateId = null;
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
map.on("click", "townshipLayer", (e) => {
|
|
|
//console.log(e.lngLat.lng,e.lngLat.lat);
|
|
|
})
|
|
|
|
|
|
map.on("click", "historyCaseLayer", (e) => {
|
|
|
|
|
|
var currentHistoryCaseId = e.features[0].properties.Id;
|
|
|
//console.log(currentHistoryCaseId);
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
map.on("mousemove", "state-fills", function (e) {
|
|
|
map.getCanvas().style.cursor = 'pointer';
|
|
|
|
|
|
|
|
|
var townshipInfo = townshipCaseCount.filter(item => {
|
|
|
return item.name == e.features[0].properties.name;
|
|
|
})
|
|
|
|
|
|
let jrajs = townshipInfo[0].todayCount || ''
|
|
|
let lsajs = townshipInfo[0].historyCount || ''
|
|
|
var str = "区域名称:" + e.features[0].properties.name + "<br> <br>线索数量:" + townshipInfo[0].reportCount;
|
|
|
popup.setLngLat([e.lngLat.lng, e.lngLat.lat]).setHTML("<p style='color:#333;font-weight:bold;'>" + str + "</p>").addTo(map);
|
|
|
|
|
|
if (e.features.length > 0) {
|
|
|
if (hoveredStateId) {
|
|
|
map.setFeatureState({ source: 'states', id: hoveredStateId }, { hover: false });
|
|
|
}
|
|
|
hoveredStateId = e.features[0].id;
|
|
|
map.setFeatureState({ source: 'states', id: hoveredStateId }, { hover: true });
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// When the mouse leaves the state-fill layer, update the feature state of the
|
|
|
// previously hovered feature.
|
|
|
map.on("mouseleave", "state-fills", function () {
|
|
|
if (hoveredStateId) {
|
|
|
map.setFeatureState({ source: 'states', id: hoveredStateId }, { hover: false });
|
|
|
}
|
|
|
hoveredStateId = null;
|
|
|
popup.remove();
|
|
|
});
|
|
|
|
|
|
map.on("click", "newCaseLayer", (e) => {
|
|
|
// //console.log("helloVue",e.features[0]);
|
|
|
var currentHistoryCaseId = e.features[0].properties.id;
|
|
|
$.ajax({
|
|
|
type: "GET",
|
|
|
url: BASE_URL + "/api/DroneScreenDisplay/GetCaseInfo",
|
|
|
dataType: "json",
|
|
|
headers: { "X-Token": localStorage.getItem("X-Token") },
|
|
|
data: { id: currentHistoryCaseId },
|
|
|
async: false,
|
|
|
beforeSend: function (xhr) { },
|
|
|
success: function (data) {
|
|
|
if (data.code == 200) {
|
|
|
$('.caseinfoNo').text(data.result.info.case_no);
|
|
|
$('.caseinfoDesc').text(data.result.info.case_description);
|
|
|
$('.caseinfoZoing').text(data.result.info.countyname + "/" + data.result.info.streetname + "/" + data.result.info.communityname);
|
|
|
$('.caseinfoType').text(data.result.info.typename);
|
|
|
$('.caseinfoMarker').text(data.result.info.remark);
|
|
|
$(".caseinfoAddress").text(data.result.info.address);
|
|
|
$(".caseinfoTime").text(data.result.info.createtime);
|
|
|
$(".caseinfoArea").text(data.result.info.area);
|
|
|
$(".caseinfoImages").empty();
|
|
|
for (var i = 0; i < data.result.pic_list.length; i++) {
|
|
|
var appendStr = "<img src='" + IMAGE_BASE_URL + "/" + data.result.pic_list[i] + "' class='caseInfoImg' style='width:230px;height:100px;margin-right:15px;'/>";
|
|
|
$(".caseinfoImages").append(appendStr);
|
|
|
}
|
|
|
}
|
|
|
$(".caseInfoImg").click(function () {
|
|
|
$(".imgContainers").empty();
|
|
|
$(".imgDetail").show()
|
|
|
$(".imgDetail").css({ "display": "flex" });
|
|
|
var imgPath = $(this).context.currentSrc
|
|
|
var appendStrPath = "<img src='" + imgPath + "' style='width:100%;height:100%;'/>";
|
|
|
$(".imgContainers").append(appendStrPath);
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
$('.bgPop2,.pop2').show();
|
|
|
})
|
|
|
map.on("click", "monitorTwoLayer", (e) => {
|
|
|
// cameraindexcode 监控ID;channelno 设备通道;
|
|
|
console.log(e.features[0].properties)
|
|
|
$('.bgPop4,.pop4').show();
|
|
|
vm.iframeVisble = true
|
|
|
localStorage.setItem("monitorTwoLayerData", JSON.stringify(e.features[0].properties))
|
|
|
child.window.childFunction();
|
|
|
})
|
|
|
map.on('click', 'markerId', (e) => {
|
|
|
console.log(e.features[0].properties)
|
|
|
|
|
|
})
|
|
|
map.on("click", "UAVLayer", (e) => {
|
|
|
$('.bgPop5,.pop5').show();
|
|
|
})
|
|
|
});
|
|
|
|
|
|
|
|
|
var myWebSocket2 = null;
|
|
|
var lockReconnect2 = false
|
|
|
var myWebSocketTimer2 = null;
|
|
|
|
|
|
function websocketReconnect2() {
|
|
|
if (lockReconnect2) { // 是否已经执行重连
|
|
|
return;
|
|
|
};
|
|
|
lockReconnect2 = true;
|
|
|
// 没连接上会一直重连,设置延迟避免请求过多
|
|
|
var tt = null;
|
|
|
tt && clearTimeout(tt);
|
|
|
|
|
|
var _this = this;
|
|
|
tt = setTimeout(function () {
|
|
|
initWebSocket2();
|
|
|
lockReconnect2 = false;
|
|
|
// console.log("正在发起2次WebSocket重连")
|
|
|
}, 5000)
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < $(".center_top_con_but").length; i++) {
|
|
|
if ($(".center_top_con_but").eq(i).attr("data-isActive") == "true") {
|
|
|
$(".center_top_con_but").eq(i).css({ "color": "#FFF71E" });
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$(".center_top_con_but").click(function () {
|
|
|
var layerName = $(this).attr("data-layerName");
|
|
|
var isActive = $(this).attr("data-isActive");
|
|
|
|
|
|
if (layerName == "uavLayer") {
|
|
|
if (isActive == 'true') {
|
|
|
for (var i = 0; i < window.UAVMarkerArray.length; i++) {
|
|
|
window.UAVMarkerArray[i].remove(map);
|
|
|
}
|
|
|
$(this).attr("data-isActive", "false");
|
|
|
$(this).css({ color: "#fff" });
|
|
|
$(this).find(".centerimg").show()
|
|
|
$(this).find(".centerimgActive").hide()
|
|
|
if (getUAVMarkersTimer) {
|
|
|
clearInterval(getUAVMarkersTimer);
|
|
|
getUAVMarkersTimer = null;
|
|
|
}
|
|
|
} else {
|
|
|
for (var i = 0; i < window.UAVMarkerArray.length; i++) {
|
|
|
window.UAVMarkerArray[i].addTo(map);
|
|
|
}
|
|
|
$(this).css({ "color": "#FFF71E" });
|
|
|
$(this).attr("data-isActive", "true");
|
|
|
$(this).find(".centerimg").hide()
|
|
|
$(this).find(".centerimgActive").show()
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
if (layerName == "newCaseLayer") {
|
|
|
|
|
|
if (isActive == 'true') {
|
|
|
newestCountMarkerArray.forEach(item => {
|
|
|
item.remove(map);
|
|
|
})
|
|
|
$(this).attr("data-isActive", "false");
|
|
|
$(this).css({ color: "#fff" });
|
|
|
$(this).find(".centerimg").show()
|
|
|
$(this).find(".centerimgActive").hide()
|
|
|
|
|
|
|
|
|
} else {
|
|
|
if ($(".historyCaseLayer").attr("data-isActive") == "true") {
|
|
|
|
|
|
historyCountMarkerArray.forEach(item => {
|
|
|
item.remove(map);
|
|
|
})
|
|
|
$(".historyCaseLayer").attr("data-isActive", "false");
|
|
|
$(".historyCaseLayer").css({ color: "#fff" });
|
|
|
$(".historyCaseLayer").find(".centerimg").show()
|
|
|
$(".historyCaseLayer").find(".centerimgActive").hide()
|
|
|
}
|
|
|
loadNewestReportPoint();
|
|
|
|
|
|
newestCountMarkerArray.forEach(item => {
|
|
|
item.addTo(map);
|
|
|
})
|
|
|
$(this).css({ "color": "#FFF71E" });
|
|
|
$(this).attr("data-isActive", "true");
|
|
|
$(this).find(".centerimg").hide()
|
|
|
$(this).find(".centerimgActive").show()
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
|
|
|
if (layerName == "historyCaseLayer") {
|
|
|
if (isActive == 'true') {
|
|
|
historyCountMarkerArray.forEach(item => {
|
|
|
item.remove(map);
|
|
|
})
|
|
|
$(this).attr("data-isActive", "false");
|
|
|
$(this).css({ color: "#fff" });
|
|
|
$(this).find(".centerimg").show()
|
|
|
$(this).find(".centerimgActive").hide()
|
|
|
} else {
|
|
|
loadNewestReportPoint();
|
|
|
if ($(".newCaseLayer").attr("data-isActive") == "true") {
|
|
|
newestCountMarkerArray.forEach(item => {
|
|
|
item.remove(map);
|
|
|
})
|
|
|
$(".newCaseLayer").attr("data-isActive", "false");
|
|
|
$(".newCaseLayer").css({ color: "#fff" });
|
|
|
$(".newCaseLayer").find(".centerimg").show()
|
|
|
$(".newCaseLayer").find(".centerimgActive").hide()
|
|
|
}
|
|
|
|
|
|
historyCountMarkerArray.forEach(item => {
|
|
|
item.addTo(map);
|
|
|
})
|
|
|
$(this).css({ "color": "#FFF71E" });
|
|
|
$(this).attr("data-isActive", "true");
|
|
|
$(this).find(".centerimg").hide()
|
|
|
$(this).find(".centerimgActive").show()
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var visibility = map.getLayoutProperty(layerName, "visibility");
|
|
|
if (visibility === "visible") {
|
|
|
map.setLayoutProperty(layerName, "visibility", "none");
|
|
|
$(this).css({ color: "#fff" });
|
|
|
$(this).find(".centerimg").show()
|
|
|
$(this).find(".centerimgActive").hide()
|
|
|
} else {
|
|
|
map.setLayoutProperty(layerName, "visibility", "visible");
|
|
|
$(this).css({ "color": "#FFF71E" });
|
|
|
$(this).find(".centerimg").hide()
|
|
|
$(this).find(".centerimgActive").show()
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
// })
|