199 lines
6.5 KiB
Plaintext
199 lines
6.5 KiB
Plaintext
|
|
//在div中初始化地图
|
||
|
|
// /let myChart = echarts.init(document.getElementById('map-content'));
|
||
|
|
let uploadedDataURL2 = "../../js/compreDisplay/anhui/hefei.json";
|
||
|
|
echarts.init(document.getElementById('echarts-map2')).dispose();
|
||
|
|
let myChart2 = null;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 加载地图
|
||
|
|
* @param dataMap
|
||
|
|
*/
|
||
|
|
function map2(dataMap) {
|
||
|
|
$.getJSON(uploadedDataURL2, function (geoJson) {
|
||
|
|
echarts.registerMap('anhui', geoJson);
|
||
|
|
myChart2.hideLoading();
|
||
|
|
let max = 480,
|
||
|
|
min = 1; // todo
|
||
|
|
let maxSize4Pin = 100,
|
||
|
|
minSize4Pin = 100;
|
||
|
|
|
||
|
|
let convertData = function (data) {
|
||
|
|
let res = [];
|
||
|
|
for (let i = 0; i < data.length; i++) {
|
||
|
|
let geoCoord = data[i].coordinate;
|
||
|
|
if (geoCoord) {
|
||
|
|
res.push({
|
||
|
|
proName: data[i].proName,
|
||
|
|
num:data[i].num,
|
||
|
|
riskLevel: data[i].riskType,
|
||
|
|
workContent: dealEmptyString(data[i].workContent),
|
||
|
|
isOnline: isOnline(data[i].ballStatus),
|
||
|
|
workManager: dealEmptyString(data[i].workManage) + '' + dealEmptyString(data[i].workManagePhone),
|
||
|
|
value: geoCoord.concat(data[i].value,data[i].proName,data[i].num),
|
||
|
|
coordinate: data[i].coordinate,
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return res;
|
||
|
|
};
|
||
|
|
|
||
|
|
let option = {
|
||
|
|
silent: false,
|
||
|
|
backgroundColor: 'transparent',
|
||
|
|
textStyle: {
|
||
|
|
fontSize: 15,
|
||
|
|
fontWeight: 'bold',
|
||
|
|
color: 'red'
|
||
|
|
},
|
||
|
|
tooltip: {
|
||
|
|
trigger: 'item',
|
||
|
|
enterable: true,
|
||
|
|
position: function (pos, params, dom, rect, size) {
|
||
|
|
if ($(dom).children($('p')).length === 0) $(dom).css('display', 'none')
|
||
|
|
pos = [pos[0], pos[1] + 10];
|
||
|
|
return pos;
|
||
|
|
},
|
||
|
|
backgroundColor: 'rgba(14, 17, 28,0.63)', //设置背景颜色
|
||
|
|
textStyle: {
|
||
|
|
color: '#fff'
|
||
|
|
},
|
||
|
|
borderColor: "#174FDD",
|
||
|
|
formatter: function (params) {
|
||
|
|
if (params.data)
|
||
|
|
return (
|
||
|
|
'<p class="map-p">' + params.data.proName + '</p>' +
|
||
|
|
'<p class="map-p">风险等级:' + setRiskLevelColor(params.data.riskLevel) + '</p>' +
|
||
|
|
'<p class="map-p" title="' + params.data.workContent + '">作业内容:' + sliceStr(params.data.workContent) + '</p>' +
|
||
|
|
'<p class="map-p">班组长:' + params.data.workManager + '</p>' +
|
||
|
|
'<p class="map-p">预警数量:' + params.data.num + '</p>' +
|
||
|
|
'<p class="map-p">球机:' + params.data.isOnline + '</p>'
|
||
|
|
)
|
||
|
|
},
|
||
|
|
// extraCssText: "background:url('../../img/tc.png') 100% 100% repeat;",
|
||
|
|
extraCssText: "max-width:300px;height:auto;word-break:break-all;white-space:pre-wrap;",
|
||
|
|
|
||
|
|
},
|
||
|
|
geo: {
|
||
|
|
show: true,
|
||
|
|
map: 'anhui',
|
||
|
|
aspectScale:0.8,
|
||
|
|
label: {
|
||
|
|
normal: {
|
||
|
|
show: true,
|
||
|
|
textStyle: {
|
||
|
|
color: '#fff',
|
||
|
|
fontFamily: 'Alibaba PuHuiTi R'
|
||
|
|
},
|
||
|
|
rotate: -20,
|
||
|
|
},
|
||
|
|
emphasis: {
|
||
|
|
show: true,
|
||
|
|
}
|
||
|
|
},
|
||
|
|
roam: false,
|
||
|
|
scaleLimit: {
|
||
|
|
max: max,
|
||
|
|
min: min
|
||
|
|
},
|
||
|
|
itemStyle: {
|
||
|
|
normal: {
|
||
|
|
areaColor: '#52ADF3',
|
||
|
|
borderColor: '#fff',
|
||
|
|
borderWidth: 2,
|
||
|
|
shadowColor: 'rgba(80, 172, 243, 0.5)',
|
||
|
|
shadowBlur: 30
|
||
|
|
},
|
||
|
|
emphasis: {
|
||
|
|
areaColor: '#2B91B7',
|
||
|
|
}
|
||
|
|
},
|
||
|
|
tooltip: {
|
||
|
|
show: true
|
||
|
|
}
|
||
|
|
},
|
||
|
|
series: [{
|
||
|
|
name: '在线',
|
||
|
|
type: 'scatter',
|
||
|
|
coordinateSystem: 'geo',
|
||
|
|
animation: false,
|
||
|
|
symbolSize: function (val) {
|
||
|
|
let a = (maxSize4Pin - minSize4Pin) / (max - min);
|
||
|
|
let b = minSize4Pin - a * min;
|
||
|
|
b = maxSize4Pin - a * max;
|
||
|
|
return 20;
|
||
|
|
},
|
||
|
|
symbol: function (val) {
|
||
|
|
console.log(val)
|
||
|
|
var num=Number(val[4])+1;
|
||
|
|
return getEchartsImage(val[2],num,val[3]);
|
||
|
|
},
|
||
|
|
label: {
|
||
|
|
normal: {
|
||
|
|
show: false,
|
||
|
|
textStyle: {
|
||
|
|
color: '#fff',
|
||
|
|
fontSize: 15,
|
||
|
|
opacity: 1
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
zlevel: 6,
|
||
|
|
z: 6,
|
||
|
|
data: convertData(dataMap)
|
||
|
|
},
|
||
|
|
]
|
||
|
|
}
|
||
|
|
|
||
|
|
myChart2.clear();
|
||
|
|
myChart2.setOption(option, true);
|
||
|
|
});
|
||
|
|
window.addEventListener("resize", function () {
|
||
|
|
myChart2.resize();
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
/*判空*/
|
||
|
|
function dealEmptyString(str) {
|
||
|
|
if (str) {
|
||
|
|
return str;
|
||
|
|
}
|
||
|
|
return '';
|
||
|
|
}
|
||
|
|
|
||
|
|
/*判断球机是否在线*/
|
||
|
|
function isOnline(value) {
|
||
|
|
if (value) {
|
||
|
|
if (value === '0' || value === 0) {
|
||
|
|
return '离线';
|
||
|
|
} else {
|
||
|
|
return '在线';
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
return '离线';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
function getEchartsCityImage(type,num,proName){
|
||
|
|
if(proName.indexOf('变电站')!=-1 && proName.indexOf('线路')==-1){
|
||
|
|
if(type==2){
|
||
|
|
return 'image://../../img/map/bdz2.png';
|
||
|
|
}else if(type==3){
|
||
|
|
return 'image://../../img/map/bdz3.png';
|
||
|
|
}else if(type==4){
|
||
|
|
return 'image://../../img/map/bdz4.png';
|
||
|
|
}else if(type==5){
|
||
|
|
return 'image://../../img/map/bdz5.png';
|
||
|
|
}
|
||
|
|
}else{
|
||
|
|
if(type==2){
|
||
|
|
return 'image://../../img/map/two-risk'+num+'.png';
|
||
|
|
}else if(type==3){
|
||
|
|
return 'image://../../img/map/three-risk'+num+'.png';
|
||
|
|
}else if(type==4){
|
||
|
|
return 'image://../../img/map/four-risk'+num+'.png';
|
||
|
|
}else if(type==5){
|
||
|
|
return 'image://../../img/map/five-risk'+num+'.png';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|