<!DOCTYPE html>
|
<html lang="en" class="full-height">
|
<head>
|
<meta charset="UTF-8">
|
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1, user-scalable=no">
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
<title>百度地图</title>
|
<link rel="stylesheet" href="css/basic.css">
|
<link rel="stylesheet" href="src/css/layui.css">
|
<link rel="stylesheet" href="app/css/common.css">
|
<link rel="stylesheet" href="app/css/map.css">
|
<link rel="stylesheet" href="font-awesome-4.7.0/css/font-awesome.css">
|
<!-- 导入百度地图API -->
|
<link rel="stylesheet" href="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.css" />
|
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=QAerSFEiGDCx1oHPB7Z5XYcBHI6R3qwx"></script>
|
<script type="text/javascript" src="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.js"></script>
|
<style>
|
.map-panel-btn {
|
/*初始化按钮*/
|
font-size: 12px;
|
text-decoration: none!important;
|
font-family: Helvetica, Arial, sans serif;
|
padding: 4px 12px;
|
border-radius: 3px;
|
-moz-border-radius: 3px;
|
box-shadow: inset 0px 0px 2px #fff;
|
-o-box-shadow: inset 0px 0px 2px #fff;
|
-webkit-box-shadow: inset 0px 0px 2px #fff;
|
-moz-box-shadow: inset 0px 0px 2px #fff;
|
/*定义颜色和样式*/
|
color: #41788c;
|
border: 1px solid #6fb1c7;
|
background-image: -moz-linear-gradient(#aae5f7, #73d0f1);
|
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#73d0f1), to(#aae5f7));
|
background-image: -webkit-linear-gradient(#aae5f7, #73d0f1);
|
background-image: -o-linear-gradient(#aae5f7, #73d0f1);
|
text-shadow: 1px 1px 1px #bfeafb;
|
background-color: #73d0f1;
|
/* 定义位置 */
|
margin-left: 200px;
|
}
|
|
.map-panel-seen-btn {
|
font-size: 12px;
|
text-decoration: none!important;
|
font-family: Helvetica, Arial, sans serif;
|
padding: 4px 12px;
|
border-radius: 3px;
|
-moz-border-radius: 3px;
|
box-shadow: inset 0px 0px 2px #fff;
|
-o-box-shadow: inset 0px 0px 2px #fff;
|
-webkit-box-shadow: inset 0px 0px 2px #fff;
|
-moz-box-shadow: inset 0px 0px 2px #fff;
|
/*定义颜色和样式*/
|
color: #41788c;
|
border: 1px solid #6fb1c7;
|
background-image: -moz-linear-gradient(#aae5f7, #73d0f1);
|
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#73d0f1), to(#aae5f7));
|
background-image: -webkit-linear-gradient(#aae5f7, #73d0f1);
|
background-image: -o-linear-gradient(#aae5f7, #73d0f1);
|
text-shadow: 1px 1px 1px #bfeafb;
|
background-color: #73d0f1;
|
}
|
.map-panel-btn:hover, .map-panel-seen-btn:hover {
|
border: 1px solid #4690ad;
|
background-image: -moz-linear-gradient(#73d0f1, #aae5f7);
|
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#aae5f7), to(#73d0f1));
|
background-image: -webkit-linear-gradient(#73d0f1, #aae5f7);
|
background-image: -o-linear-gradient(#73d0f1, #aae5f7);
|
background-color: #aae5f7;
|
}
|
</style>
|
</head>
|
<body class="full-height">
|
<div class="abs">
|
<div class="rel-full">
|
<div class="page-header bg-gay3">
|
<div class="layui-row h40">
|
<div class="layui-col-xs3 layui-col-md1 full-height">
|
<a href="index.html" class="layui-btn layui-btn-primary layui-btn-sm mrt5 mrl8"><i class="fa fa-reply mrr4"></i>返回</a>
|
</div>
|
<div class="layui-col-xs6 layui-col-md10 full-height line-height40">机房定位</div>
|
<div class="layui-col-xs3 layui-col-md1 full-height line-height40 t-align-right t-align-right">
|
<!-- <button class="layui-btn layui-btn-primary layui-btn-sm mrr8" id="homeInfo"><i class="fa fa fa-bars mrr4"></i>功能</button> -->
|
</div>
|
</div>
|
</div>
|
<div class="page-content abs abs-top40">
|
<div class="rel-full">
|
<div id="map" class="full-height"></div>
|
<div id="tempMapContainer" class="temp-map-container">
|
<div class="temp-map-container-rel">
|
<div class="temp-map-container-close"><i class="fa fa-close"></i></div>
|
<div id="changeMapMarker" class="temp-map"></div>
|
</div>
|
|
</div>
|
<div id="mapSearch" class="map-search-container">
|
<div class="layui-form layui-form-pane" action="">
|
<div class="layui-form-item">
|
<label class="layui-form-label"><i class="fa fa-search"></i></label>
|
<div class="layui-input-block">
|
<input type="text" name="title" id="searchInput" autocomplete="off" placeholder="机房搜索" class="layui-input">
|
</div>
|
</div>
|
</div>
|
</div>
|
<div id="mapLocationLogo" class="map-location-logo">
|
<div class="map-location-logo-container default"></div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<!-- 存储机房信息列表 -->
|
<div id="searchHomeIframe"></div>
|
<!-- 机房定位 -->
|
<div id="homeLocation"></div>
|
<!-- 存在机房信息 -->
|
<div id="homeInfoIframe"></div>
|
<script src="js/jquery-1.8.3.js"></script>
|
<script src="src/layui.all.js"></script>
|
<script src="../pages/js/GPS.js"></script>
|
<script>
|
// 百度地图模块
|
var map = new BMap.Map('map');
|
var point = new BMap.Point(125.3192,43.8090);
|
map.centerAndZoom(point, 11); // 用城市名设置地图中心点
|
map.enableScrollWheelZoom();
|
map.disableDoubleClickZoom();
|
// 给地图添加工具条(地图-卫星-三维)和比例尺控件
|
map.addControl(new BMap.MapTypeControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT}));
|
|
// 百度地图临时模块
|
var tmpMap = new BMap.Map('changeMapMarker');
|
var point = new BMap.Point(125.3192,43.8090);
|
tmpMap.centerAndZoom(point, 11); // 用城市名设置地图中心点
|
tmpMap.enableScrollWheelZoom();
|
tmpMap.disableDoubleClickZoom();
|
// 给地图添加工具条(地图-卫星-三维)和比例尺控件
|
tmpMap.addControl(new BMap.MapTypeControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT}));
|
|
|
// 浏览器定位(前提是有网络和开启GPS权限)
|
var geolocation = new BMap.Geolocation();
|
|
// 点击定位按钮
|
$('#mapLocationLogo .map-location-logo-container').click(function() {
|
$(this).removeClass('default loading success').addClass('loading');
|
var _this = $(this);
|
geolocation.getCurrentPosition(function(r){
|
if(this.getStatus() == BMAP_STATUS_SUCCESS){
|
delMkByLabel('新机房');
|
_this.removeClass('default loading success').addClass('success');
|
var mk = new BMap.Marker(r.point);
|
var label = new BMap.Label("新机房",{offset:new BMap.Size(20,-10)});
|
label.setStyle({display: 'none', padding: '4px 2px'});
|
mk.enableDragging(); // 设置可拖动
|
map.addOverlay(mk); // 将覆盖物添加到地图中
|
mk.setLabel(label); // 给覆盖物添加label提示
|
map.panTo(r.point); // 将地图移动到添加的点位置
|
map.setZoom(20); // 设置地图的缩放等级
|
|
// 给maker点绑定点击事件
|
mk.addEventListener('click', function(e) {
|
var target = e.target;
|
showAddMapPanel(target);
|
});
|
}else {
|
layer.msg('定位失败,请检查GPS或网络!');
|
}
|
});
|
});
|
|
// 删除
|
function delMkByLabel(str) {
|
var allOverlay = map.getOverlays();
|
for (var i = 0; i < allOverlay.length -1; i++){
|
if(allOverlay[i].getLabel) {
|
if(allOverlay[i].getLabel()) {
|
if(allOverlay[i].getLabel().content == str){
|
map.removeOverlay(allOverlay[i]);
|
return false;
|
}
|
}
|
|
}
|
|
}
|
}
|
|
// 添加增加机房的面板
|
function showAddMapPanel(target) {
|
var geoc = new BMap.Geocoder();
|
var searchInforWin = null;
|
var pt = target.point;
|
|
var opts = {
|
title : '设置站点位置', //标题
|
width : 290, //宽度
|
height : 150, //高度
|
panel : "panel", //检索结果面板
|
enableAutoPan : true, //自动平移
|
searchTypes :[
|
// BMAPLIB_TAB_SEARCH, //周边检索
|
// BMAPLIB_TAB_TO_HERE, //到这里去
|
// BMAPLIB_TAB_FROM_HERE //从这里出发
|
]
|
};
|
geoc.getLocation(pt, function(rs){
|
var addComp = rs.addressComponents;
|
$.ajax({
|
type: "post",
|
url: "BattMap_informationAction!serchNotInBattMap",
|
async:true,
|
dataType:'text',
|
data:null,
|
success: function(data){
|
//console.info(data);
|
data = eval('('+data+')');
|
var model = eval('('+data.result+')');
|
//console.info(model);
|
var options = "";
|
if(model.code == 1){
|
for(var i=0;i<model.data.length;i++){
|
options+= '<option value="'+model.data[i].StationId+'">'+model.data[i].StationName+'</option>';
|
}
|
}else{
|
options = "<option value='0'>暂无可设站点</option>";
|
}
|
|
var content = '<div class="add-panel">'+
|
'<div style="padding: 6px 4px"><span>地址:</span>'+
|
'<span class="addr">'+addComp.province+'-'+addComp.city+'-'+addComp.district+'-'+addComp.street+'</span></div>'+
|
'<div style="padding: 6px 4px">经度:<span class="lng">'+rs.point.lng+'</span>,纬度:<span class="lat">'+rs.point.lat+'</span></div>'+
|
'<div style="padding: 6px 4px"><span>设置站点名:</span>'+'<select style="border: 1px solid #ccc; width: 180px">'+options+'</select></div>'+
|
'<div style="padding: 6px 4px; margin-top: 20px">'+
|
'<a href="javascript:showHomeInfo();" class="map-panel-btn">确定</a></div>'
|
+'</div>';
|
|
searchInforWin = new BMapLib.SearchInfoWindow(map, content, opts);
|
|
searchInforWin.open(rs.point);
|
$('.BMapLib_sendToPhone').hide();
|
}
|
});
|
});
|
}
|
|
|
// 显示机房详细信息
|
var iframePopup;
|
function showHomeInfo() {
|
var lng = $('.add-panel .lng').text(); // 获取经度
|
var lat = $('.add-panel .lat').text(); // 获取纬度
|
var addr = $('.add-panel .addr').text(); // 获取地址
|
var homeId = $('.add-panel select option:selected').val(); // 机房Id
|
var homeName = $('.add-panel select option:selected').text(); // 机房名称
|
var temp = {
|
homeId: homeId
|
,homeName: homeName
|
,addr: addr
|
,lng: lng
|
,lat: lat
|
}
|
// 显示暂无可设站点
|
if(homeId == 0) {
|
layer.msg(homeName);
|
return;
|
}
|
// 存储值
|
$('#homeInfoIframe').data('homeInfo', temp);
|
|
iframePopup = layer.open({
|
type: 2
|
,closeBtn: 0
|
,title: false
|
,area: ['100%', '100%']
|
,full: true
|
,anim: 4
|
,content: 'iframe/homeinfo.html'
|
});
|
layer.full(iframePopup);
|
}
|
|
// 点击筛选弹出内容
|
$('#homeInfo').click(function() {
|
iframePopup = layer.open({
|
type: 2
|
,closeBtn: 0
|
,title: false
|
,area: ['100%', '100%']
|
,full: true
|
,anim: 4
|
,content: 'iframe/homeinfo.html'
|
});
|
layer.full(iframePopup);
|
});
|
|
// 搜索机房获取焦点
|
$('#searchInput').on('focus', function() {
|
$(this).blur();
|
iframePopup = layer.open({
|
type: 2
|
,closeBtn: 0
|
,title: false
|
,area: ['100%', '100%']
|
,full: true
|
,anim: 5
|
,content: 'iframe/searchHome.html'
|
});
|
layer.full(iframePopup);
|
});
|
|
// 查询机房
|
findHome();
|
function findHome() {
|
var tmp = {
|
StationName1:'',
|
StationName2: '',
|
StationName5:''
|
};
|
|
// 查询将信息
|
$.post("BattInfAction!serchStationName3","json="+JSON.stringify(tmp),function(result){
|
var rs = JSON.parse(result.result);
|
if(rs.code==1){
|
homeSource = [];
|
var data = rs.data;
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
var tmp = {
|
label: _data.StationName+'('+_data.StationId+')',
|
province: _data.StationName1,
|
city: _data.StationName2,
|
county: _data.StationName5,
|
home: _data.StationName,
|
homeid: _data.StationId
|
};
|
|
// 添加到资源
|
homeSource.push(tmp);
|
}
|
//console.log(homeSource)
|
// 设置资源内容
|
$('#searchHomeIframe').data('homeSource', homeSource);
|
}
|
});
|
|
}
|
|
// 显示地图图标
|
var allStation = [];
|
function searchStation(){
|
var temp = createSearchParam();
|
var json = JSON.stringify(temp);
|
var load = layer.load(1);
|
// 查询后台
|
$.ajax({
|
type: "post",
|
url: "BattMap_informationAction!searchUserManageStation",
|
async: true,
|
dataType:'text',
|
data:"json="+json,
|
success: function(data){
|
data = eval('('+data+')');
|
// 获取结果集
|
var rs = JSON.parse(data.result);
|
var list = rs.data;
|
// console.log(list);
|
allStation = new Array();
|
if(list!=undefined && list.length>0){
|
// 遍历查询结果
|
for(var i=0;i<list.length;i++){
|
var _list = list[i];
|
allStation.push(formatAllStation(_list));
|
}
|
|
createMapDot(map, allStation);
|
queryInRect(map);
|
map.addEventListener("moveend", queryInRect.bind({},map)); // 拖动
|
map.addEventListener("zoomend", queryInRect.bind({},map)); // 缩放
|
}
|
},
|
complete:function() {
|
layer.close(load);
|
}
|
});
|
}
|
|
//构造查询条件
|
function createSearchParam(){
|
var bmd = {
|
adata:{
|
alm_cleared_type:$('#alarm-station').length == 0?0:$('#alarm-station').is(":checked")?0:100,
|
alm_id:$('#low-station').length==0?1:$('#low-station').is(":checked")?1:100,
|
},
|
bplan:{
|
discharge_reason:$('#delayed-station').length==0?3:$('#delayed-station').is(":checked")?3:100,
|
}
|
};
|
|
return bmd;
|
}
|
|
// 格式化查询结果
|
function formatAllStation(list) {
|
var obj = new Object();
|
// GPS坐标转化为百度坐标
|
var point = GPS.wgs2bd(list.latitude, list.longitude);
|
// 构造结果集
|
obj.lng = point.lon;
|
obj.lat = point.lat;
|
obj.title = list.StationName;
|
obj.sId = list.StationId;
|
obj.fbsId = list.FBSDeviceId;
|
obj.addr = list.Address;
|
obj.msg = "";
|
obj.num = list.num;
|
return obj;
|
}
|
|
// 生成地图图标
|
function createMapDot(map, dotList) {
|
// 遍历查询内容生成对应的图标
|
for(var i = 0; i<dotList.length; i++) {
|
var pt = new BMap.Point(dotList[i].lng, dotList[i].lat);
|
var mk = new BMap.Marker(pt); // 定义marker点
|
// 向mk点添加label
|
var home_name = new BMap.Label(dotList[i].title, {offset:new BMap.Size(20,-10)});
|
home_name.setStyle({display: 'none', padding: '4px 2px'}); // 设置不可见
|
mk.setLabel(home_name); // 设置label
|
|
mk.addEventListener('click', function(e) {
|
var target = e.target;
|
//showMapPanel(target, dotList);
|
searchPanelInfo(target.point);
|
});
|
|
|
map.addOverlay(mk); // 添加覆盖物
|
mk.hide();
|
}
|
}
|
|
// 查询机房面板信息
|
function searchPanelInfo(param) {
|
var point = new BMap.Point(param.lng, param.lat);
|
var stationInfo = getStaionByPoint(point);
|
if(!stationInfo) {
|
alert('面板信息查询失败!');
|
return;
|
}
|
var temp = {
|
StationId: stationInfo.sId
|
};
|
var load = layer.load(1);
|
// 查询面板信息
|
$.ajax({
|
type: 'post',
|
async: true,
|
url: 'BattMap_informationAction!searchUserManageStation3',
|
data: 'json='+JSON.stringify(temp),
|
dataType: 'json',
|
success: function(result) {
|
var rs = JSON.parse(result.result);
|
if(rs.length != 0) {
|
var data = rs[0];
|
console.info(data);
|
var content = '<div style="padding:6px 0; width:50%; float:left;"><span>蓄电池组告警数目:</span>'+data.code+'</div>'+
|
'<div style="padding:6px 0; width:50%; float:left;"><span>蓄电池组落后数目:</span>'+data.sum+'</div>'+
|
'<div style="clear:both"></div>'+
|
'<div style="padding: 6px 4px">经度:<span class="lng">'+data.data.longitude+'</span>,纬度:<span class="lat">'+data.data.latitude+'</span></div>'+
|
'<div style="padding:6px;"><span>地址:</span>'+data.data.Address+'</div>'+
|
'<br>'+
|
'<div class="t-align-right">'+
|
'<a href="javascript:seenHomeInfo();" class="map-panel-seen-btn mrl8">查看</a>'+
|
'<a href="javascript:editHomeInfo();" class="map-panel-seen-btn mrl8">修改</a>'+
|
'<a href="javascript:showTempMap();" class="map-panel-seen-btn mrl8">重新定位</a>'+
|
'<a href="javascript:delHomeInfo();" class="map-panel-seen-btn mrl8">删除</a>'+
|
'</div>'+
|
'<input type="hidden" class="ipt-hide lng" value="'+data.data.longitude+'">'+
|
'<input type="hidden" class="ipt-hide lat" value="'+data.data.latitude+'">'+
|
'<input type="hidden" class="ipt-hide addr" value="'+data.data.Address+'">'+
|
'<input type="hidden" class="ipt-hide home" value="'+data.data.StationName+'">'+
|
'<input type="hidden" class="ipt-hide province" value="'+data.data.stationName1+'">'+
|
'<input type="hidden" class="ipt-hide county" value="'+data.data.stationName5+'">'+
|
'<input type="hidden" class="ipt-hide sid" value="'+data.data.StationId+'">'+
|
'<input type="hidden" class="ipt-hide city" value="'+data.data.stationName2+'">';
|
|
var list = {
|
title: data.data.StationName,
|
content: content
|
};
|
|
showMapPanelByPoint(point, list);
|
}
|
},
|
complete: function() {
|
layer.close(load);
|
}
|
});
|
}
|
|
// 修改机房信息面板
|
function editHomeInfo() {
|
var lng = $('.ipt-hide.lng').val(); // 获取经度
|
var lat = $('.ipt-hide.lat').val(); // 获取纬度
|
var addr = $('.ipt-hide.addr').val(); // 获取地址
|
var homeId = $('.ipt-hide.sid').val(); // 机房Id
|
var homeName = $('.ipt-hide.home').val(); // 机房名称
|
var temp = {
|
homeId: homeId
|
,homeName: homeName
|
,addr: addr
|
,lng: lng
|
,lat: lat
|
}
|
// 显示暂无可设站点
|
if(homeId == 0) {
|
layer.msg(homeName);
|
return;
|
}
|
// 存储值
|
$('#homeInfoIframe').data('homeInfo', temp);
|
|
iframePopup = layer.open({
|
type: 2
|
,closeBtn: 0
|
,title: false
|
,area: ['100%', '100%']
|
,full: true
|
,anim: 4
|
,content: 'iframe/homeinfo.html'
|
});
|
layer.full(iframePopup);
|
}
|
|
// 删除地图图标
|
function delHomeInfo() {
|
layer.msg('暂无权限删除!')
|
}
|
|
// 显示重新定位机房面板
|
function showTempMap() {
|
var lng = $('.ipt-hide.lng').val(); // 获取经度
|
var lat = $('.ipt-hide.lat').val(); // 获取纬度
|
var addr = $('.ipt-hide.addr').val(); // 获取地址
|
var homeId = $('.ipt-hide.sid').val(); // 机房Id
|
var homeName = $('.ipt-hide.home').val(); // 机房名称
|
console.log(lng+"***"+lat);
|
var baiduPoint = GPS.wgs2bd(Number(lat), Number(lng)); // 将原始坐标转化为百度坐标
|
console.log(baiduPoint);
|
var temp = {
|
homeId: homeId
|
,homeName: homeName
|
,addr: addr
|
,lng: lng
|
,lat: lat
|
};
|
tmpMap.clearOverlays();
|
$('#tempMapContainer').addClass('temp-map-container-show'); // 显示面板
|
|
// 坐标集合
|
var points = [];
|
|
// 旧机房的位置
|
var oldPoint = new BMap.Point(baiduPoint.lon, baiduPoint.lat);
|
points.push(oldPoint);
|
var oldLabel = new BMap.Label("原始机房位置",{offset:new BMap.Size(20,-10)});
|
var oldMk = new BMap.Marker(oldPoint);
|
oldMk.disableDragging(); // 设置不可拖动
|
tmpMap.addOverlay(oldMk); // 将覆盖物添加到地图中
|
oldMk.setLabel(oldLabel); // 给覆盖物添加label提示
|
// tmpMap.panTo(oldPoint); // 定位到位置
|
|
var load = layer.load(1);
|
geolocation.getCurrentPosition(function(r){
|
layer.close(load);
|
if(this.getStatus() == BMAP_STATUS_SUCCESS){
|
// 新机房的位置
|
points.push(r.point);
|
var mk = new BMap.Marker(r.point);
|
var label = new BMap.Label("新机房位置",{offset:new BMap.Size(20,-10)});
|
mk.enableDragging(); // 设置可拖动
|
tmpMap.addOverlay(mk); // 将覆盖物添加到地图中
|
mk.setLabel(label); // 给覆盖物添加label提示
|
|
// 将坐标定位到最新坐标
|
tmpMap.setViewport(points); // 将地图移动到添加的点位置
|
|
// 给maker点绑定点击事件
|
mk.addEventListener('click', function(e) {
|
var target = e.target;
|
console.log(target);
|
showChangeMkPanle(target, homeId, homeName, addr);
|
});
|
|
}else {
|
layer.msg('定位失败,请检查GPS或网络!');
|
}
|
});
|
}
|
|
// 显示修改面板
|
function showChangeMkPanle(target, id, name, addr) {
|
var searchInforWin = null;
|
var pt = target.point;
|
|
var opts = {
|
title : '设置站点位置', //标题
|
width : 290, //宽度
|
height : 150, //高度
|
panel : "panel", //检索结果面板
|
enableAutoPan : true, //自动平移
|
searchTypes :[
|
// BMAPLIB_TAB_SEARCH, //周边检索
|
// BMAPLIB_TAB_TO_HERE, //到这里去
|
// BMAPLIB_TAB_FROM_HERE //从这里出发
|
]
|
};
|
var content = '<div class="add-panel">'+
|
'<div style="padding: 6px 4px"><span>地址:</span>'+
|
'<span class="addr">'+addr+'</span></div>'+
|
'<div style="padding: 6px 4px">经度:<span class="lng">'+pt.lng+'</span>,纬度:<span class="lat">'+pt.lat+'</span></div>'+
|
'<div style="padding: 6px 4px"><span>设置站点名:</span>'+'<span class="home-name">'+name+'</span></div>'+
|
'<input type="hidden" class="home-id" value="'+id+'">'+
|
'<div style="padding: 6px 4px; margin-top: 20px">'+
|
'<a href="javascript:replaceHomePoint();" class="map-panel-btn">确定</a></div>'
|
+'</div>';
|
|
searchInforWin = new BMapLib.SearchInfoWindow(tmpMap, content, opts);
|
|
searchInforWin.open(pt);
|
$('.BMapLib_sendToPhone').hide();
|
}
|
|
// 替换最新位置
|
function replaceHomePoint() {
|
var addr = $('.add-panel .addr').text();
|
var lng = $('.add-panel .lng').text();
|
var lat = $('.add-panel .lat').text();
|
var homeName = $('.add-panel .home-name').text();
|
var homeId = $('.add-panel .home-id').val();
|
var wgsPoint = GPS.bd2wgs(lat, lng); // 百度地图坐标转化为GPS
|
|
layer.confirm('是否确定重新定位', {icon:3, title: '提示'}, function(index) {
|
layer.close(index);
|
var temp = {
|
StationId: homeId, //机房编号
|
StationName: homeName, //机房名称
|
Address: addr, //机房物理信息
|
longitude: wgsPoint.lon, // 经度
|
latitude: wgsPoint.lat, // 纬度
|
information:"", //备注
|
};
|
// 请求后台
|
var json = JSON.stringify(temp);
|
//console.info(json);
|
$.ajax({
|
type: "post",
|
url: "BattMap_informationAction!replace",
|
async:true,
|
dataType:'text',
|
data:"json="+json,
|
success: function(data){
|
data = eval('('+data+')');
|
var model = eval('('+data.result+')');
|
if(model.code == 1){
|
alert("修改成功");
|
$('#tempMapContainer').removeClass('temp-map-container-show'); // 隐藏面板
|
addNewMapMark(homeName, lng, lat);
|
}else{
|
alert("修改失败");
|
}
|
}
|
});
|
|
});
|
|
|
}
|
|
|
// 删除map的图标然后添加一个新的图标
|
function addNewMapMark(name, lng, lat) {
|
delMkByLabel(name); // 删除mk点
|
var pt = new BMap.Point(lng, lat);
|
var mk = new BMap.Marker(pt); // 定义marker点
|
// 向mk点添加label
|
var home_name = new BMap.Label(name, {offset:new BMap.Size(20,-10)});
|
home_name.setStyle({display: 'none', padding: '4px 2px'}); // 设置不可见
|
mk.setLabel(home_name); // 设置label
|
|
mk.addEventListener('click', function(e) {
|
var target = e.target;
|
//showMapPanel(target, dotList);
|
searchPanelInfo(target.point);
|
});
|
map.addOverlay(mk); // 添加覆盖物
|
|
// 更新内容
|
updateAllStationData(name, lng, lat);
|
|
locationByHomeName(map, name);
|
|
}
|
|
// 关闭重新定位机房面板
|
$('#tempMapContainer .temp-map-container-close').click(function() {
|
$('#tempMapContainer').removeClass('temp-map-container-show'); // 关闭面板
|
});
|
|
// 查看机房信息
|
function seenHomeInfo() {
|
var lng = $('.ipt-hide.lng').val(); // 获取经度
|
var lat = $('.ipt-hide.lat').val(); // 获取纬度
|
var addr = $('.ipt-hide.addr').val(); // 获取地址
|
var homeId = $('.ipt-hide.sid').val(); // 机房Id
|
var homeName = $('.ipt-hide.home').val(); // 机房名称
|
var temp = {
|
homeId: homeId
|
,homeName: homeName
|
,addr: addr
|
,lng: lng
|
,lat: lat
|
}
|
// 显示暂无可设站点
|
if(homeId == 0) {
|
layer.msg(homeName);
|
return;
|
}
|
// 存储值
|
$('#homeInfoIframe').data('homeInfo', temp);
|
|
iframePopup = layer.open({
|
type: 2
|
,closeBtn: 0
|
,title: false
|
,area: ['100%', '100%']
|
,full: true
|
,anim: 4
|
,content: 'iframe/seenhomeinfo.html'
|
});
|
layer.full(iframePopup);
|
}
|
|
// 显示地图提示面板
|
function showMapPanelByPoint(point, dataList) {
|
var searchInforWin = null;
|
var opts = {
|
title : dataList.title+'<a href="javascript:loadToHomeInfo();" style="margin-left: 1em;text-decoration:none;cursor:not-allowed">详情>></a>', //标题未开启
|
width : '290', //宽度
|
height : 150, //高度
|
panel : "panel", //检索结果面板
|
enableAutoPan : true, //自动平移
|
enableSendToPhone:false,
|
searchTypes :[
|
// BMAPLIB_TAB_SEARCH, //周边检索
|
// BMAPLIB_TAB_TO_HERE, //到这里去
|
// BMAPLIB_TAB_FROM_HERE //从这里出发
|
]
|
};
|
|
searchInforWin = new BMapLib.SearchInfoWindow(map, dataList.content, opts);
|
searchInforWin.open(point);
|
}
|
|
// 根据经纬度获取机房的信息
|
function getStaionByPoint(point) {
|
var stationInfo = false;
|
// 遍历所有机房
|
for(var i=0; i<allStation.length; i++) {
|
var info = allStation[i];
|
if(info.lng == point.lng && info.lat == point.lat) {
|
stationInfo = info;
|
}
|
}
|
return stationInfo;
|
}
|
|
// 显示区域内的图标
|
function queryInRect(map) {
|
var cp = map.getBounds(); // 返回map可视区域,以地理坐标表示
|
var sw = cp.getSouthWest(); // 返回矩形区域的西南角
|
var ne = cp.getNorthEast(); // 返回矩形区域的东北角
|
var mkList = map.getOverlays();
|
var zoom = map.getZoom(); //当前缩放级别
|
showDotList(mkList, sw, ne, zoom);
|
}
|
|
// 获取dots的集合
|
function showDotList(mkList, sw, ne, zoom) {
|
var rs = [];
|
swlng=sw.lng,
|
swlat=sw.lat,
|
nelng=ne.lng,
|
nelat=ne.lat;
|
|
var maxLng = sw.lng>ne.lng?sw.lng:ne.lng;
|
var minLng = sw.lng<ne.lng?sw.lng:ne.lng;
|
|
var maxLat = sw.lat>ne.lat?sw.lat:ne.lat;
|
var minLat = sw.lat<ne.lat?sw.lat:ne.lat;
|
for(var i=0; i<mkList.length; i++) {
|
var mk = mkList[i];
|
var point = mk.getPosition?mk.getPosition():null;
|
if(point) {
|
var lat = point.lat;
|
var lng = point.lng;
|
// 判断当前的maker点是否显示
|
if(lng<maxLng && lng>minLng && lat<maxLat && lat>minLat && zoom>10) {
|
// console.log(123)
|
mk.show();
|
}else {
|
mk.hide();
|
}
|
|
}
|
}
|
return rs;
|
}
|
|
// 根据后台数据显示地图的中心坐标
|
centerMapByPoint(map);
|
function centerMapByPoint(map) {
|
// 请求后台根据数据更改地图中心坐标
|
$.ajax({
|
type: "post",
|
url: "Positiomap_usrAction!serchByCondition",
|
async:true,
|
dataType:'text',
|
data:null,
|
success: function(rs){
|
rs = eval('('+rs+')');
|
var model = eval('('+rs.result+')');
|
if(model.code == 1) {
|
var data = model.data[0];
|
var _point = new BMap.Point(data.map_longitude,data.map_latitude);
|
map.centerAndZoom(_point, data.map_level); // 用城市名设置地图中心点
|
}
|
searchStation();
|
}
|
});
|
}
|
|
|
// 机房定位面板
|
$('#homeLocation').on('click', function() {
|
var homeInfo = $(this).data('homeInfo');
|
locationByHomeName(map, homeInfo.home);
|
});
|
|
|
// 根据机房名称定位机房
|
function locationByHomeName(map, name) {
|
var mkList = map.getOverlays();
|
// console.log(mkList);
|
for(var i=0; i<mkList.length; i++) {
|
var mk = mkList[i];
|
var _label = mk.getLabel?mk.getLabel()?mk.getLabel().content:'':'';
|
// 判断机房名称
|
if(_label == name) {
|
var point = mk.getPosition();
|
map.panTo(point); // 将地图移动到添加的点位置
|
map.setZoom(20); // 设置地图的缩放等级
|
searchPanelInfo(point);
|
}
|
|
}
|
}
|
|
//拦截安卓回退按钮
|
history.pushState(null, null, location.href);
|
window.addEventListener('popstate', function(event) {
|
history.pushState(null, null, location.href );
|
//此处加入回退时你要执行的代码
|
});
|
|
// 更新所有机房的信息
|
function updateAllStationData(name, lng, lat) {
|
console.log(allStation);
|
for(var i=0; i<allStation.length; i++) {
|
var _data = allStation[i];
|
if(_data.title == name) {
|
_data.lng = lng;
|
_data.lat = lat;
|
}
|
}
|
}
|
|
|
</script>
|
</body>
|
</html>
|