253 lines
9.1 KiB
Plaintext
253 lines
9.1 KiB
Plaintext
|
|
<%@ page language="java" pageEncoding="UTF-8"%>
|
|||
|
|
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
|
|||
|
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
|||
|
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
|
|||
|
|
<%@ page import="com.sipai.entity.base.ServerObject"%>
|
|||
|
|
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
|
|||
|
|
<!DOCTYPE html>
|
|||
|
|
<!-- <html lang="zh-CN"> -->
|
|||
|
|
<!-- BEGIN HEAD -->
|
|||
|
|
<head>
|
|||
|
|
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
|
|||
|
|
<!-- 引用页头及CSS页-->
|
|||
|
|
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
|||
|
|
<style>
|
|||
|
|
.legend {
|
|||
|
|
width:10rem;
|
|||
|
|
position: absolute;
|
|||
|
|
bottom: 20px;
|
|||
|
|
left: 10px;
|
|||
|
|
text-align:center;
|
|||
|
|
}
|
|||
|
|
.legend-item{
|
|||
|
|
width: 100%;
|
|||
|
|
border-radius: 0.8rem;
|
|||
|
|
}
|
|||
|
|
.legend-text{
|
|||
|
|
width: 100%;
|
|||
|
|
height: 20px;
|
|||
|
|
padding: 5px;
|
|||
|
|
}
|
|||
|
|
.efficiencySelect{
|
|||
|
|
width:10rem;
|
|||
|
|
position: absolute;
|
|||
|
|
top: 20px;
|
|||
|
|
left: 10px;
|
|||
|
|
text-align:center;
|
|||
|
|
}
|
|||
|
|
body {
|
|||
|
|
overflow-x: auto;
|
|||
|
|
overflow-y: auto;
|
|||
|
|
}
|
|||
|
|
</style>
|
|||
|
|
<script type="text/javascript">
|
|||
|
|
var canvas;
|
|||
|
|
var context;
|
|||
|
|
var height;
|
|||
|
|
var width;
|
|||
|
|
var beauty;
|
|||
|
|
var beautyPng;
|
|||
|
|
var colors = ["RGBA(251,255,205,0.8)","RGBA(250,232,126,0.8)",
|
|||
|
|
"RGBA(252,203,84,0.8)", "RGBA(251,169,97,0.8)",
|
|||
|
|
"RGBA(232,75,34,0.8)","RGBA(175,0,18,0.8)"];
|
|||
|
|
|
|||
|
|
var masterId='';
|
|||
|
|
var tbName='tb_efficiency_overviewConfigure_file'; //数据表
|
|||
|
|
//获取url地址根目录 当前taomcat下路径
|
|||
|
|
function getRootPath(){
|
|||
|
|
var pathName = window.location.pathname.substring(1);
|
|||
|
|
// var webName = pathName == '' ? '' : pathName.substring(0, pathName.indexOf('/'));
|
|||
|
|
return window.location.protocol + '//' + window.location.host;
|
|||
|
|
}
|
|||
|
|
var picId="";
|
|||
|
|
$(function () {
|
|||
|
|
//type=1为热力图
|
|||
|
|
$.post(ext.contextPath + '/efficiency/efficiencyOverviewConfigure/getJson.do', {unitId:unitId,type:"1"} , function(data) {
|
|||
|
|
if(data.length>0){
|
|||
|
|
masterId=data[0].id;
|
|||
|
|
var upperlimit=data[0].upperlimit;
|
|||
|
|
var lowerlimit=data[0].lowerlimit;
|
|||
|
|
var grade=data[0].grade;
|
|||
|
|
load(masterId);
|
|||
|
|
$(window).resize(function(){
|
|||
|
|
load(masterId);
|
|||
|
|
});
|
|||
|
|
for(var a=0;a<data.length;a++){
|
|||
|
|
$("#efficiencySelect").append("<option value='"+data[a].id+"'>"+data[a].name+"</option>");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},'json');
|
|||
|
|
});
|
|||
|
|
function windowToCanvas(e) {
|
|||
|
|
var x = e.x || e.clientX,
|
|||
|
|
y = e.y || e.clientY,
|
|||
|
|
bbox = canvas.getBoundingClientRect();
|
|||
|
|
|
|||
|
|
return { x: x - bbox.left * (canvas.width / bbox.width),
|
|||
|
|
y: y - bbox.top * (canvas.height / bbox.height)
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
function drawBeauty(){
|
|||
|
|
context.save();
|
|||
|
|
context.drawImage(beauty, 0, 0, height/860*1690, height);
|
|||
|
|
//点击获取坐标
|
|||
|
|
canvas.onmousedown = function (e) {
|
|||
|
|
var loc = windowToCanvas(e);
|
|||
|
|
e.preventDefault(); // prevent cursor change
|
|||
|
|
var lnglat = new Array;
|
|||
|
|
lnglat[0]=loc.x;
|
|||
|
|
lnglat[1]=loc.y;
|
|||
|
|
console.log(lnglat);
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
function drawData(data){
|
|||
|
|
//data = _.orderBy(data, "count",'desc');
|
|||
|
|
context.clearRect(0, 0, context.canvas.width, context.canvas.height);
|
|||
|
|
context.drawImage(beauty, 0, 0, height/860*1690, height);
|
|||
|
|
//定位等比例调整,目前基于本地电脑846高度确定定位
|
|||
|
|
//var scale = context.canvas.height/846;
|
|||
|
|
var scale = height/860;
|
|||
|
|
var legend = "";
|
|||
|
|
legend = '<div class="legend-item" style="background-color:#AF0012;"><span class="legend-text" style="color:#fff;">8以上</span></div>'+
|
|||
|
|
'<div class="legend-item" style="background-color:#E84B22;"><span class="legend-text" style="color:#fff;">6~8</span></div>'+
|
|||
|
|
'<div class="legend-item" style="background-color:#FBA961;"><span class="legend-text">4~6</span></div>'+
|
|||
|
|
'<div class="legend-item" style="background-color:#FAE87E;"><span class="legend-text">2~4</span></div>'+
|
|||
|
|
'<div class="legend-item" style="background-color:#FBFFCD;"><span class="legend-text">0~2</span></div>';
|
|||
|
|
$("#legend").html(legend);
|
|||
|
|
if(data!=null && data!=undefined && data!=''){
|
|||
|
|
context.save();
|
|||
|
|
for(var i=0;i<data.length;i++){
|
|||
|
|
var count = data[i].count;
|
|||
|
|
var color="RGBA(175,0,18,0.8)";
|
|||
|
|
//根据数据与最大值比例选择区域颜色
|
|||
|
|
if(count>8){
|
|||
|
|
color = colors[5];
|
|||
|
|
};
|
|||
|
|
if(count>6 && count<=8){
|
|||
|
|
color = colors[4];
|
|||
|
|
}
|
|||
|
|
if(count>4 && count<=6){
|
|||
|
|
color = colors[3];
|
|||
|
|
}
|
|||
|
|
if(count>2 && count<=4){
|
|||
|
|
color = colors[1];
|
|||
|
|
}
|
|||
|
|
if(count<=2){
|
|||
|
|
color = colors[0];
|
|||
|
|
}
|
|||
|
|
//绘制区域颜色
|
|||
|
|
context.fillStyle = color;
|
|||
|
|
context.strokeStyle = "RGBA(232,75,34,0.6)";
|
|||
|
|
context.lineWidth=3;
|
|||
|
|
//绘制区域开始
|
|||
|
|
context.beginPath();
|
|||
|
|
if(data[i].lnglats!=null
|
|||
|
|
&& data[i].lnglats!=undefined
|
|||
|
|
&& data[i].lnglats!=''){
|
|||
|
|
var lnglats = eval(data[i].lnglats);
|
|||
|
|
for(var a=0;a<lnglats.length;a++){
|
|||
|
|
if(a==0){
|
|||
|
|
//绘制区域初始坐标点
|
|||
|
|
context.moveTo(lnglats[a][0]*scale, lnglats[a][1]*scale);
|
|||
|
|
}else{
|
|||
|
|
//绘制区域后续坐标点
|
|||
|
|
context.lineTo(lnglats[a][0]*scale, lnglats[a][1]*scale);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//绘制区域结束
|
|||
|
|
context.closePath();
|
|||
|
|
context.fill();
|
|||
|
|
context.stroke();
|
|||
|
|
}
|
|||
|
|
context.save();
|
|||
|
|
context.drawImage(beautyPng, 0, 0, height/860*1690, height);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
function load(masterId){
|
|||
|
|
$.post(ext.contextPath + '/base/getInputFileList.do', {masterId:masterId,tbName:tbName} , function(data) {
|
|||
|
|
if(data.length>0){
|
|||
|
|
var abspath=data[0].abspath.split('webapps');
|
|||
|
|
picId=data[0].id;
|
|||
|
|
canvas = document.getElementById("canvas");
|
|||
|
|
context = canvas.getContext('2d');
|
|||
|
|
height = $(window).height();
|
|||
|
|
beauty = new Image();
|
|||
|
|
beauty.src = ""+getRootPath()+""+abspath[1]+"";
|
|||
|
|
beautyPng = new Image();
|
|||
|
|
abspath = data[1].abspath.split('webapps');
|
|||
|
|
beautyPng.src = ""+getRootPath()+""+abspath[1]+"";
|
|||
|
|
//整体区域
|
|||
|
|
$("#map").height(height);
|
|||
|
|
$("#map").width(height/860*1690);
|
|||
|
|
$("body").width(height/860*1690);
|
|||
|
|
|
|||
|
|
width = $(window).width();
|
|||
|
|
document.getElementById('canvas').width=height/860*1690;
|
|||
|
|
document.getElementById('canvas').height=height;
|
|||
|
|
if(beauty.complete){
|
|||
|
|
drawBeauty();
|
|||
|
|
doMapData(picId);
|
|||
|
|
}else{
|
|||
|
|
beauty.onload = function(){
|
|||
|
|
drawBeauty();
|
|||
|
|
doMapData(picId);
|
|||
|
|
};
|
|||
|
|
beauty.onerror = function(){
|
|||
|
|
alert('加载失败,请重试');
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
},'json');
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
function doMapData(picId){
|
|||
|
|
$.post(ext.contextPath + '/efficiency/efficiencyOverviewMpConfigure/getJson.do', {picId:picId,unitId:unitId} , function(mpdata) {
|
|||
|
|
if(mpdata.length>0){
|
|||
|
|
var list = new Array;
|
|||
|
|
for(var m=0;m<mpdata.length;m++){
|
|||
|
|
var lnglats= "["+mpdata[m].lnglats+"]";
|
|||
|
|
var arr ={
|
|||
|
|
"count" : mpdata[m].showParmValue,
|
|||
|
|
"lnglats" : lnglats,
|
|||
|
|
}
|
|||
|
|
list.push(arr);
|
|||
|
|
}
|
|||
|
|
drawData(list);
|
|||
|
|
}
|
|||
|
|
},'json');
|
|||
|
|
//手动测试
|
|||
|
|
/* var list =[
|
|||
|
|
{"count":1,"name":"2#鼓风机房","lnglats":[[765, 138],[791, 139],[791, 209],[765, 210]]}
|
|||
|
|
,{"count":5,"name":"1#鼓风机房","lnglats":[[862, 243],[927, 243],[927, 394],[862, 395]]}
|
|||
|
|
,{"count":12,"name":"污泥脱水机房","lnglats":[[1060, 79],[1204, 80],[1204, 145],[1060, 145]]}
|
|||
|
|
[ [118, 514],[210, 514],[209, 659],[118, 659]]
|
|||
|
|
[[276, 570],[342, 571],[341, 648],[277, 649]]
|
|||
|
|
[[415, 514],[450, 513],[450, 661],[426, 663],[425, 627],[416, 626]]
|
|||
|
|
[[1618, 585],[1650, 585],[1650, 672],[1618, 670]]
|
|||
|
|
];
|
|||
|
|
drawData(list); */
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
</head>
|
|||
|
|
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
|||
|
|
<div class="wrapper">
|
|||
|
|
<div class="content-wrapper">
|
|||
|
|
<!-- Main content -->
|
|||
|
|
<section class="content container-fluid" style="padding:0;">
|
|||
|
|
<div id="mainAlertdiv"></div>
|
|||
|
|
<div id="subDiv"></div>
|
|||
|
|
<div role="tabpanel" class="tab-pane map active" id="map">
|
|||
|
|
<canvas id="canvas"></canvas>
|
|||
|
|
<div class="legend" id="legend"></div>
|
|||
|
|
<div class="efficiencySelect">
|
|||
|
|
<select class="form-control" id="efficiencySelect" onchange="load(this.value)"></select>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
<!-- /.content -->
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</body>
|
|||
|
|
</html>
|