var map;
var polygon2;
var point2s = [];
var drawingOverlay;
var levels ="";
var parentIds ="";
$(function() {
// 初始化树
getOrgTreeData("");
initMap(); // 加载地图
});
function initMap() {
creatMap();
madeBoundary(); // 加载区域图
}
function creatMap(){
map = new BMap.Map('map');
//var poi = new BMap.Point(117.542207,33.133388);
var poi = new BMap.Point(106.852748,26.647899);
map.centerAndZoom(poi, 8.5);
map.enableScrollWheelZoom();
var styleOptions = {
strokeColor: "red", //边线颜色。
fillColor: "red", //填充颜色。当参数为空时,圆形将没有填充效果。
strokeWeight: 3, //边线的宽度,以像素为单位。
strokeOpacity: 0.8, //边线透明度,取值范围0 - 1。
fillOpacity: 0.6, //填充的透明度,取值范围0 - 1。
strokeStyle: 'solid' //边线的样式,solid或dashed。
}
//实例化鼠标绘制工具
var drawingManager = new BMapLib.DrawingManager(map, {
isOpen: false, //是否开启绘制模式
enableDrawingTool: true, //是否显示工具栏
drawingToolOptions: {
anchor: BMAP_ANCHOR_TOP_RIGHT, //位置
offset: new BMap.Size(5, 5), //偏离值
drawingModes : [BMAP_DRAWING_POLYLINE],
scale: 0.8 //工具栏缩放比例
},
circleOptions: styleOptions, //圆的样式
polylineOptions: styleOptions, //线的样式
polygonOptions: styleOptions, //多边形的样式
rectangleOptions: styleOptions //矩形的样式
});
findDevPos(""); //查询设备定位信息
findFencePoints(); //查询围栏区域信息
//添加鼠标绘制工具监听事件,用于获取绘制结果
drawingManager.addEventListener('overlaycomplete', overlaycomplete);
map.addControl(new BMap.NavigationControl()); // 添加平移缩放控件
map.enableScrollWheelZoom(); //启用滚轮放大缩小
}
// 设置区域图start
function madeBoundary() {
var datas = new Array("贵州-");
var bdary = new BMap.Boundary();
for (var i = 0; i < datas.length; i++) {
getBoundary(datas[i], bdary);
}
}
function getBoundary(data, bdary) {
data = data.split("-");
bdary.get(data[0], function(rs) { // 获取行政区域
var count = rs.boundaries.length; // 行政区域的点有多少个
var pointArray = [];
for (var i = 0; i < count; i++) {
var ply = new BMap.Polygon(rs.boundaries[i], {
strokeWeight : 3,
strokeColor : "#00D8FF", //#024E41 国网绿
fillOpacity : 0,
fillColor : "rgba(0, 0, 0, 0)"
}); // 建立多边形覆盖物
map.addOverlay(ply); // 添加覆盖物
ply.disableMassClear(); // 此设置不会被移除
}
});
}
// 设置区域图end
function findDevPos(name){
var index=name.indexOf("[");
if(index>-1){
name=name.substring(0,index);
}
var pts = [];
var ptsInfo = [];
$.ajax({
type : "post",
url : bonuspath + "/backstage/position/findBindPosition",
data : {
keyWord:name,
deviceType:"2"
},
dataType : "json",
success : function(data) {
var result = data.obj;
console.log("result",result);
if (result != null && result != '') {
for (var i = 0; i < result.length; i++) {
var lat = result[i].lat;
var lon = result[i].lon;
var id = result[i].id;
var jNum = result[i].jNum;
var sNum = result[i].sNum;
map.addOverlay(createMarker(id,lon, lat, result[i],jNum,sNum));
}
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
}
});
}
//创建地图覆盖物start
function createMarker(id,lon, lat, dev,jNum,sNum) { // 创建地图覆盖物
var pt = new BMap.Point(lon, lat);
var cent = "";
var myIcon = getIcon(dev);
var marker = new BMap.Marker(pt, {
icon : myIcon
});
cent += "
";
cent += "
GPS编号:"
+ JY.Object.notEmpty(dev.code) + "";
cent += "
设备编号:"
+ JY.Object.notEmpty(dev.deviceCode) + "";
cent += "
设备电量: "
+ JY.Object.notEmpty(dev.electQuantity) + "%" + "";
cent += "
经度: "
+ JY.Object.notEmpty(dev.lon) + "";
cent += "
纬度: "
+ JY.Object.notEmpty(dev.lat) + "";
cent += "
上传时间: "
+ JY.Object.notEmpty(dev.upTime) + "";
cent += "
设备类型: " + JY.Object.notEmpty(dev.typeName) + "";
var posTypeInfo = dev.posType;
if(posTypeInfo =="LBS" || posTypeInfo =="lbs"){
posTypeInfo = "基站定位";
}
if(posTypeInfo =="GPS" || posTypeInfo =="gps"){
posTypeInfo = "卫星定位";
}
if(posTypeInfo =="WIFI" || posTypeInfo =="wifi"){
posTypeInfo = "WIFI定位";
}
if(posTypeInfo =="BEACON" || posTypeInfo =="beacon"){
posTypeInfo = "蓝牙定位";
}
cent += "
定位类型: "
+ posTypeInfo + "";
cent += "
所属围栏:暂无";
cent += "
当前项目所在工程: "
+ JY.Object.notEmpty(dev.proName) + "";
cent += "
领用单位: "
+ JY.Object.notEmpty(dev.useUnit) + "";
/*cent +="
"+'历史定位:'+""+"
定位查看";*/
cent +="
"+'历史定位:'+""+"

";
cent += "
地址: "
+ JY.Object.notEmpty(dev.address) + "";
cent += "
";
addClickHandler(cent, marker);
return marker;
}
/*function createMarker(id,lon, lat, dev,jNum,sNum) { // 创建地图覆盖物
var info = isArea(lon, lat, dev.points);
var pt = new BMap.Point(lon, lat);
var cent = "";
var myIcon = getIcon(dev);
var marker = new BMap.Marker(pt, {
icon : myIcon
});
cent += ""
+ info + "
";
cent += "GPS编号:"
+ JY.Object.notEmpty(dev.code) + "
";
cent += "设备编号:"
+ JY.Object.notEmpty(dev.deviceCode) + "
";
cent += "设备电量: "
+ JY.Object.notEmpty(dev.electQuantity) + "%" + "
";
cent += "经度: "
+ JY.Object.notEmpty(dev.lon) + "
";
cent += "纬度: "
+ JY.Object.notEmpty(dev.lat) + "
";
cent += "上传时间: "
+ JY.Object.notEmpty(dev.upTime) + "
";
if(info=="设备不在区域内"){
cent += "设备数量: " +
""+ 1 + "
";
cent += "设备类型: " + JY.Object.notEmpty(dev.typeName) + "
";
}else if(info=="设备在区域内"){
cent += "机动绞磨数量: " +
""+ JY.Object.notEmpty(jNum) + "
";
cent += "手扶机绞磨数量: " +
""+ JY.Object.notEmpty(sNum) + "
";
cent += "设备数量: " +
""+ JY.Object.notEmpty(parseInt(jNum) + parseInt(sNum)) + "
";
}
var posTypeInfo = dev.posType;
if(posTypeInfo =="LBS" || posTypeInfo =="lbs"){
posTypeInfo = "基站定位";
}
if(posTypeInfo =="GPS" || posTypeInfo =="gps"){
posTypeInfo = "卫星定位";
}
if(posTypeInfo =="WIFI" || posTypeInfo =="wifi"){
posTypeInfo = "WIFI定位";
}
if(posTypeInfo =="BEACON" || posTypeInfo =="beacon"){
posTypeInfo = "蓝牙定位";
}
cent += "定位类型: "
+ posTypeInfo + "
";
cent += "所属围栏: "
+ dev.fenceName + "
";
cent += "";
cent += "
";
addClickHandler(cent, marker);
return marker;
}*/
//历史定位数据查看
function gpsView(code){
localStorage.setItem("code",code);
layer.open({
type : 2,
title : ['历史定位', 'background-color: #27A3D9;color:#fff' ],
shadeClose : true,
shade : false,
maxmin : true,
area : [ '90%', '85%' ],
content :bonuspath+'/backstage/position/historyGps'
});
}
//点击重叠数字,弹窗展示设备信息明细
function findDeviceDetail(id,type){
localStorage.setItem("id",id);
localStorage.setItem("type",type);
layer.open({
type : 2,
title : ['设备明细', 'background-color: #27A3D9;color:#fff' ],
shadeClose : true,
shade : false,
maxmin : true,
area : [ '1100px', '600px' ],
content :bonuspath+'/backstage/index/map'
});
}
//覆盖物点击事件start--机具
function addClickHandler(content, marker) {
marker.addEventListener("onmouseover", function(e) {
openDevInfo(content, e);
});
}
// 覆盖物点击事件end
//创建信息窗口对象 start
function openDevInfo(content, e) { // 弹出窗口信息
var p = e.target;
var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
var infoWindow = new BMap.InfoWindow(content, manageopts); // 创建信息窗口对象
map.openInfoWindow(infoWindow, point); // 开启信息窗口
// $("..BMap_pop div:nth-child(8) img")
// .attr('src', "./libs/images/device.png");
}
// 创建信息窗口对象 end
//回调获得覆盖物信息
function overlaycomplete(e) {
map.removeOverlay(drawingOverlay);
drawingOverlay = e.overlay;
map.addOverlay(drawingOverlay);
var points = new Array();
var arrps = new Array();
var p=e.overlay.getPath();
for(var j = 0; j < p.length; j++){
var grid =p[j];
var point = new BMap.Point(grid.lng,grid.lat);
var obj={};
obj.lon=grid.lng;
obj.lat=grid.lat;
points.push(point);
arrps.push(obj);
}
console.log("arrpss:",arrps);
polygon2 = new BMap.Polygon(points,{strokeColor:"#f50704",fillColor:"#cfcfcf", strokeWeight:5, strokeOpacity:0,fillOpacity:0,});
map.addOverlay(polygon2);
console.log(points);
addFence(arrps);
};
//围栏坐标存入数据库
function addFence(arrps){
layer.prompt({title: '请输入围栏名称', formType: 2}, function(text, index){
layer.close(index);
$.ajax({
type : "post",
url : bonuspath + "/backstage/fence/insert",
data : {
points:JSON.stringify(arrps),
name:text
},
dataType : "json",
success : function(data) {
layer.msg(data.resMsg);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
}
});
});
}
//查询围栏坐标点信息
function findFencePoints(){
$.ajax({
type : "post",
url : bonuspath + "/backstage/fence/findNoPage",
data : {
isActive : 1
},
dataType : "json",
success : function(data) {
// alert("data="+JSON.stringify(data))
var res = data.obj.list;
var points;
for(var i=0;i= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var currentdate = date.getFullYear() + seperator + month + seperator
+ strDate;
return currentdate;
}
//判断坐标点是否在围栏区域内
function isArea(lon,lat,points){
var info;
var devPoint = new BMap.Point(lon, lat);
var json=JSON.parse(points);
var pointarray=new Array();
for(var j=0;j