<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
<html lang="en">
|
|
<head>
|
<meta charset="utf-8">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta name="viewport"
|
content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=no">
|
<title>切换地图</title>
|
<link rel="icon" type="image/x-icon" href="/hxzkoa/hxzk/assets/img/favicon.ico" />
|
|
<!-- BEGIN GLOBAL MANDATORY STYLES -->
|
<link rel="stylesheet" href="/hxzkoa/hxzk/fengmap/css/fengmap.css">
|
<link href="/hxzkoa/hxzk/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
|
|
|
<script src="/hxzkoa/hxzk/fengmap/js/fengmap.map.min.js"></script>
|
<script src="/hxzkoa/hxzk/assets/js/libs/jquery-3.1.1.min.js"></script>
|
<script src="/hxzkoa/hxzk/bootstrap/js/bootstrap.min.js"></script>
|
|
<style>
|
</style>
|
</head>
|
|
<body>
|
<div class="btn-group" role="group" aria-label="..."
|
style="position: absolute;z-index: 9;top: 47px;right: 90px;background-color: rgba(255, 255, 255, 0.5);">
|
<button type="button" class="btn btn-default" onclick="qiehuanditua('1573200407934201857')"
|
style="padding: 3px 7px">一车间</button>
|
<button type="button" class="btn btn-default" onclick="qiehuanditua('1573194681635500034')"
|
style="padding: 3px 7px">二车间</button>
|
<button type="button" class="btn btn-default" onclick="qiehuanditua('1573188594433716225')"
|
style="margin-right: 0px;padding: 3px 7px">800吨</button>
|
</div>
|
<div id="mapId" style="width:100%;height: 100%;cursor: pointer;"></div>
|
</body>
|
|
<script>
|
//常用方法
|
function getRealPositionsan(value) {
|
var realposition = [];
|
$.ajax({
|
async: false,
|
type: 'POST',
|
url: "/hxzkoa/getRealPositionsan3.do",
|
dataType: 'json',
|
data: {
|
floor: value
|
},
|
success: function (data) {
|
for (var i = 0; i < data.length; i++) {
|
realposition.push([data[i].tagid, data[i].name, data[i].power, data[i].life, data[i].posx, data[i].posy, data[i].time, data[i].fence == 1 || data[i].sos == 1, data[i].sousuo, data[i].shipin, data[i].inkaoqing, data[i].jiao, data[i].baoliu24, data[i].baoliu23, data[i].sex, data[i].minzu, data[i].phone, data[i].power, data[i].bumen])
|
}
|
},
|
});
|
return realposition
|
};
|
|
function getSystemSetting() {
|
var sysset = [];
|
$.ajax({
|
async: false,
|
type: 'POST',
|
url: "/hxzkoa/getSysSetting_list.do",
|
dataType: 'json',
|
success: function (data) {
|
sysset = data;
|
},
|
});
|
return sysset;
|
};
|
|
function attributeCount(obj) {
|
var count = 0;
|
for (var i in obj) {
|
if (obj.hasOwnProperty(i)) { // 建议加上判断,如果没有扩展对象属性可以不加
|
count++;
|
}
|
}
|
return count;
|
}
|
|
|
</script>
|
|
<script>
|
var biaoqians = new Object();
|
var biaoqianids = new Object();
|
var oo = 0;
|
var bm_sysSetting = getSystemSetting();
|
var bm_offView = bm_sysSetting[0].offView;//是否离线不显示图标
|
var bm_kaoqing = bm_sysSetting[0].diskaoqing;//是否出考勤区域消失
|
var timer;
|
|
var origon = [
|
{ x: 32097, y: 19837 },
|
{ x: 36106, y: 19837 },
|
{ x: 32097, y: 20667 }
|
];
|
|
var target = [
|
{ x: 13018503.6051, y: 4724694.1210 }, //原点 x最小y最小
|
{ x: 13018544.2965, y: 4724694.1349 }, //x最大y最小
|
{ x: 13018503.6949, y: 4724685.7666 } //x最小y最大
|
];
|
|
var origon2 = [
|
{ x: 8389, y: 5668 },
|
{ x: 8997, y: 5668 },
|
{ x: 8389, y: 4837 }
|
];
|
|
var target2 = [
|
{ x: 13018879.6910, y: 4724768.3029 }, //原点 x最小y最小
|
{ x: 13018885.8399, y: 4724768.3029 }, //x最大y最小
|
{ x: 13018879.6540, y: 4724776.7114 } //x最小y最大
|
];
|
|
var origon3 = [
|
{ x: 14500, y: 7335 },
|
{ x: 15279, y: 7335 },
|
{ x: 14500, y: 6470 }
|
];
|
|
var target3 = [
|
{ x: 13018674.5980, y: 4724750.0687 }, //原点 x最小y最小
|
{ x: 13018682.4323, y: 4724750.0687 }, //x最大y最小
|
{ x: 13018674.6351, y: 4724758.7179 } //x最小y最大
|
];
|
|
var coordsTransformer = new fengmap.FMCoordsTransformer({ origon: origon, target: target });
|
var coordsTransformer2 = new fengmap.FMCoordsTransformer({ origon: origon2, target: target2 });
|
var coordsTransformer3 = new fengmap.FMCoordsTransformer({ origon: origon3, target: target3 });
|
|
var map;
|
var options = {
|
container: document.getElementById("mapId"),
|
appName: 'map1',
|
key: '09facc4ee52d1844bc1e561dad5abf59',
|
mapID: '1573200407934201857',
|
themeID: '4008',
|
minTiltAngle: 0,
|
mapZoom: 19.5,
|
}
|
|
map = new fengmap.FMMap(options);
|
|
timer = setInterval(fn, 1000);
|
|
function fn() {
|
var personlist1 = getRealPositionsan(1);
|
var personlist = [];
|
if (personlist1.length != 0) {
|
for (var i = 0; i < personlist1.length; i++) {
|
if (((bm_offView == '1' && personlist1[i][3] == '1') || (bm_offView == '0')) && ((bm_kaoqing == '1' && personlist1[i][10] == '1') || (bm_kaoqing == '0'))) {
|
personlist.push(personlist1[i])
|
}
|
if ((bm_offView == '1' && personlist1[i][3] != '1') || (bm_kaoqing == '1' && personlist1[i][10] != '1')) {
|
if (biaoqians[personlist1[i][0]] != "" && biaoqians[personlist1[i][0]] != 0 && biaoqians[personlist1[i][0]] != null) {
|
biaoqians[personlist1[i][0]].remove();
|
biaoqianids[personlist1[i][0]].remove();
|
delete biaoqians[personlist1[i][0]];
|
delete biaoqianids[personlist1[i][0]];
|
}
|
}
|
}
|
//$("#shuliang").html(personlist.length);
|
if (attributeCount(biaoqians) != personlist.length) {
|
diaoyong1();
|
} else {
|
diaoyong2();
|
}
|
}
|
|
function diaoyong1() {
|
for (var i = 0; i < personlist.length; i++) {
|
if (biaoqians[personlist[i][0]] == "" || biaoqians[personlist[i][0]] == 0 || biaoqians[personlist[i][0]] == null) {
|
var xy = coordsTransformer.transform({ x: personlist[i][4], y: personlist[i][5] });
|
var fmarker = new fengmap.FMDynamicModel({
|
id: personlist[i][1] + "," + personlist[i][0] + "," + personlist[i][14] + "," + personlist[i][15] + "," + personlist[i][16] + "," + personlist[i][17] + "," + personlist[i][18] + "," + personlist[i][12],
|
url: '../fengmap/data/person.glb',
|
x: xy.x,
|
y: xy.y,
|
scale: 3,
|
height: personlist[i][12],
|
heading: 0,
|
callback: function (fmarker) {
|
fmarker.startAction(fmarker.getActionNames()[0]);
|
}
|
})
|
|
var lmarker = new fengmap.FMTextMarker({
|
text: personlist[i][1] + " " + personlist[i][0],
|
height: +personlist[i][12] + 8,
|
x: xy.x,
|
y: xy.y,
|
textAlign: fengmap.FMTextAlign.Center,
|
plateColor: '60,141,196',
|
plateStrokeColor: '60,141,196',
|
})
|
var level = map.getLevel();
|
var floor = map.getFloor(level);
|
fmarker.addTo(floor);
|
lmarker.addTo(floor);
|
biaoqians[personlist[i][0]] = fmarker;
|
biaoqianids[personlist[i][0]] = lmarker;
|
}
|
}
|
}
|
|
function diaoyong2() {
|
for (var i = 0; i < personlist.length; i++) {
|
var xy = coordsTransformer.transform({ x: personlist[i][4], y: personlist[i][5] });
|
biaoqians[personlist[i][0]].moveTo({
|
x: xy.x,
|
y: xy.y,
|
animate: true,
|
})
|
biaoqians[personlist[i][0]].height = personlist[i][12]
|
biaoqianids[personlist[i][0]].moveTo({
|
x: xy.x,
|
y: xy.y,
|
animate: true,
|
})
|
biaoqianids[personlist[i][0]].height = +personlist[i][12] + 8
|
biaoqians[personlist[i][0]].rotateTo({
|
heading: personlist[i][11],
|
animate: true,
|
})
|
}
|
}
|
}
|
|
function fn2() {
|
var personlist1 = getRealPositionsan(4);
|
var personlist = [];
|
if (personlist1.length != 0) {
|
for (var i = 0; i < personlist1.length; i++) {
|
if (((bm_offView == '1' && personlist1[i][3] == '1') || (bm_offView == '0')) && ((bm_kaoqing == '1' && personlist1[i][10] == '1') || (bm_kaoqing == '0'))) {
|
personlist.push(personlist1[i])
|
}
|
if ((bm_offView == '1' && personlist1[i][3] != '1') || (bm_kaoqing == '1' && personlist1[i][10] != '1')) {
|
if (biaoqians[personlist1[i][0]] != "" && biaoqians[personlist1[i][0]] != 0 && biaoqians[personlist1[i][0]] != null) {
|
biaoqians[personlist1[i][0]].remove();
|
biaoqianids[personlist1[i][0]].remove();
|
delete biaoqians[personlist1[i][0]];
|
delete biaoqianids[personlist1[i][0]];
|
}
|
}
|
}
|
//$("#shuliang").html(personlist.length);
|
if (attributeCount(biaoqians) != personlist.length) {
|
diaoyong1();
|
} else {
|
diaoyong2();
|
}
|
}
|
|
function diaoyong1() {
|
for (var i = 0; i < personlist.length; i++) {
|
if (biaoqians[personlist[i][0]] == "" || biaoqians[personlist[i][0]] == 0 || biaoqians[personlist[i][0]] == null) {
|
var xy = coordsTransformer2.transform({ x: personlist[i][4], y: personlist[i][5] });
|
var fmarker = new fengmap.FMDynamicModel({
|
id: personlist[i][1] + "," + personlist[i][0] + "," + personlist[i][14] + "," + personlist[i][15] + "," + personlist[i][16] + "," + personlist[i][17] + "," + personlist[i][18] + "," + personlist[i][12],
|
url: '../fengmap/data/person.glb',
|
x: xy.x,
|
y: xy.y,
|
scale: 3,
|
height: personlist[i][12],
|
heading: 0,
|
callback: function (fmarker) {
|
fmarker.startAction(fmarker.getActionNames()[0]);
|
}
|
})
|
|
var lmarker = new fengmap.FMTextMarker({
|
text: personlist[i][1] + " " + personlist[i][0],
|
height: +personlist[i][12] + 8,
|
x: xy.x,
|
y: xy.y,
|
textAlign: fengmap.FMTextAlign.Center,
|
plateColor: '60,141,196',
|
plateStrokeColor: '60,141,196',
|
})
|
var level = map.getLevel();
|
var floor = map.getFloor(level);
|
fmarker.addTo(floor);
|
lmarker.addTo(floor);
|
biaoqians[personlist[i][0]] = fmarker;
|
biaoqianids[personlist[i][0]] = lmarker;
|
}
|
}
|
}
|
|
function diaoyong2() {
|
for (var i = 0; i < personlist.length; i++) {
|
var xy = coordsTransformer2.transform({ x: personlist[i][4], y: personlist[i][5] });
|
biaoqians[personlist[i][0]].moveTo({
|
x: xy.x,
|
y: xy.y,
|
animate: true,
|
})
|
biaoqians[personlist[i][0]].height = personlist[i][12]
|
biaoqianids[personlist[i][0]].moveTo({
|
x: xy.x,
|
y: xy.y,
|
animate: true,
|
})
|
biaoqianids[personlist[i][0]].height = +personlist[i][12] + 8
|
biaoqians[personlist[i][0]].rotateTo({
|
heading: personlist[i][11],
|
animate: true,
|
})
|
}
|
}
|
}
|
|
function fn3() {
|
var personlist1 = getRealPositionsan(5);
|
var personlist = [];
|
if (personlist1.length != 0) {
|
for (var i = 0; i < personlist1.length; i++) {
|
if (((bm_offView == '1' && personlist1[i][3] == '1') || (bm_offView == '0')) && ((bm_kaoqing == '1' && personlist1[i][10] == '1') || (bm_kaoqing == '0'))) {
|
personlist.push(personlist1[i])
|
}
|
if ((bm_offView == '1' && personlist1[i][3] != '1') || (bm_kaoqing == '1' && personlist1[i][10] != '1')) {
|
if (biaoqians[personlist1[i][0]] != "" && biaoqians[personlist1[i][0]] != 0 && biaoqians[personlist1[i][0]] != null) {
|
biaoqians[personlist1[i][0]].remove();
|
biaoqianids[personlist1[i][0]].remove();
|
delete biaoqians[personlist1[i][0]];
|
delete biaoqianids[personlist1[i][0]];
|
}
|
}
|
}
|
//$("#shuliang").html(personlist.length);
|
if (attributeCount(biaoqians) != personlist.length) {
|
diaoyong1();
|
} else {
|
diaoyong2();
|
}
|
}
|
|
function diaoyong1() {
|
for (var i = 0; i < personlist.length; i++) {
|
if (biaoqians[personlist[i][0]] == "" || biaoqians[personlist[i][0]] == 0 || biaoqians[personlist[i][0]] == null) {
|
var xy = coordsTransformer3.transform({ x: personlist[i][4], y: personlist[i][5] });
|
var fmarker = new fengmap.FMDynamicModel({
|
id: personlist[i][1] + "," + personlist[i][0] + "," + personlist[i][14] + "," + personlist[i][15] + "," + personlist[i][16] + "," + personlist[i][17] + "," + personlist[i][18] + "," + personlist[i][12],
|
url: '../fengmap/data/person.glb',
|
x: xy.x,
|
y: xy.y,
|
scale: 3,
|
height: personlist[i][12],
|
heading: 0,
|
callback: function (fmarker) {
|
fmarker.startAction(fmarker.getActionNames()[0]);
|
}
|
})
|
|
var lmarker = new fengmap.FMTextMarker({
|
text: personlist[i][1] + " " + personlist[i][0],
|
height: +personlist[i][12] + 8,
|
x: xy.x,
|
y: xy.y,
|
textAlign: fengmap.FMTextAlign.Center,
|
plateColor: '60,141,196',
|
plateStrokeColor: '60,141,196',
|
})
|
var level = map.getLevel();
|
var floor = map.getFloor(level);
|
fmarker.addTo(floor);
|
lmarker.addTo(floor);
|
biaoqians[personlist[i][0]] = fmarker;
|
biaoqianids[personlist[i][0]] = lmarker;
|
}
|
}
|
}
|
|
function diaoyong2() {
|
for (var i = 0; i < personlist.length; i++) {
|
var xy = coordsTransformer3.transform({ x: personlist[i][4], y: personlist[i][5] });
|
biaoqians[personlist[i][0]].moveTo({
|
x: xy.x,
|
y: xy.y,
|
animate: true,
|
})
|
biaoqians[personlist[i][0]].height = personlist[i][12]
|
biaoqianids[personlist[i][0]].moveTo({
|
x: xy.x,
|
y: xy.y,
|
animate: true,
|
})
|
biaoqianids[personlist[i][0]].height = +personlist[i][12] + 8
|
biaoqians[personlist[i][0]].rotateTo({
|
heading: personlist[i][11],
|
animate: true,
|
})
|
}
|
}
|
}
|
|
function qiehuanditua(value) {
|
// 切换地图前先销毁地图
|
clearInterval(timer)
|
biaoqians = [];
|
biaoqianids = [];
|
map.dispose();
|
var mapOptions = {
|
container: document.getElementById("mapId"),
|
appName: 'map1',
|
key: '09facc4ee52d1844bc1e561dad5abf59',
|
mapID: value,
|
themeID: '4008',
|
minTiltAngle: 0,
|
mapZoom: 19.5,
|
}
|
map = new fengmap.FMMap(mapOptions);
|
if (value == 1573200407934201857) {
|
timer = setInterval(fn, 1000)
|
} else if (value == 1573194681635500034) {
|
timer = setInterval(fn2, 1000)
|
} else if (value == 1573188594433716225) {
|
timer = setInterval(fn3, 1000)
|
}
|
}
|
</script>
|
|
</html>
|