var map;
var polygon2;
var point2s = [];
var drawingOverlay;
var levels ="";
var parentIds ="";
$(function() {
var bdmapcfg = {
'imgext': '.png', // 与瓦片文件后缀一致
'tiles_dir': '/opt/gzImw/web_tomcat/local_map/14/' // 本地瓦片根目录
}; // :ml-citation{ref="2,6" data="citationList"}
// 初始化树
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, 14);
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:"1"
},
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;
var site = addressF(lon, lat);
addressF(lon, lat,id,jNum,sNum,result[i]);
}
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
}
});
}
function addressF(lon, lat,id,jNum,sNum,dev){
// 创建地理编码(地理解析器)实例
var myGeo = new BMap.Geocoder();
// 根据坐标得到地址描述 下面输入坐标。
myGeo.getLocation(new BMap.Point(lon, lat), function (result) {
if (result) {
var addComp = result.address;
var site = addComp ;
map.addOverlay(createMarker(id,lon, lat, dev,jNum,sNum,site));
}
});
}
//创建地图覆盖物start
function createMarker(id,lon, lat, dev,jNum,sNum,site) { // 创建地图覆盖物
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(site) + "";
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