// 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 = "
";
$(".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 = "
";
$(".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 = "
";
// $(".caseinfoImages").append(appendStr);
// }
// }
// $(".caseInfoImg").click(function () {
// $(".imgContainers").empty();
// $(".imgDetail").show()
// $(".imgDetail").css({ "display": "flex" });
// var imgPath = $(this).attr("data-imgSrc");
// var appendStrPath = "
";
// $(".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 {
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 + "
线索数量:" + townshipInfo[0].reportCount;
popup.setLngLat([e.lngLat.lng, e.lngLat.lat]).setHTML("" + str + "
").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 + "
线索数量:" + townshipInfo[0].reportCount;
popup.setLngLat([e.lngLat.lng, e.lngLat.lat]).setHTML("" + str + "
").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 = "
";
$(".caseinfoImages").append(appendStr);
}
}
$(".caseInfoImg").click(function () {
$(".imgContainers").empty();
$(".imgDetail").show()
$(".imgDetail").css({ "display": "flex" });
var imgPath = $(this).context.currentSrc
var appendStrPath = "
";
$(".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()
}
})
// })