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