hdw
2018-12-21 b5e4362e38b7947e5163be80f5d55a9fe46ef4a0
gx_tieta/WebRoot/mobil/map.html
@@ -88,6 +88,13 @@
            <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">
@@ -123,7 +130,17 @@
        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();
        
@@ -456,6 +473,7 @@
                        '<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+'">'+
@@ -519,6 +537,174 @@
         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);         // 添加覆盖物
         locationByHomeName(map, name);
      }
      // 关闭重新定位机房面板
      $('#tempMapContainer .temp-map-container-close').click(function() {
         $('#tempMapContainer').removeClass('temp-map-container-show');      // 关闭面板
      });
      // 查看机房信息
      function seenHomeInfo() {
         var lng = $('.ipt-hide.lng').val();                     // 获取经度