From b5e4362e38b7947e5163be80f5d55a9fe46ef4a0 Mon Sep 17 00:00:00 2001 From: hdw <hdw@192.168.1.9> Date: 星期五, 21 十二月 2018 09:23:31 +0800 Subject: [PATCH] 地图重新定位 --- gx_tieta/WebRoot/mobil/map.html | 188 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 187 insertions(+), 1 deletions(-) diff --git a/gx_tieta/WebRoot/mobil/map.html b/gx_tieta/WebRoot/mobil/map.html index 26203c4..ddfc4d4 100644 --- a/gx_tieta/WebRoot/mobil/map.html +++ b/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})); + + // 娴忚鍣ㄥ畾浣嶏紙鍓嶆彁鏄湁缃戠粶鍜屽紑鍚疓PS鏉冮檺锛� 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); // 灏嗗湴鍥剧Щ鍔ㄥ埌娣诲姞鐨勭偣浣嶇疆 + + // 缁檓aker鐐圭粦瀹氱偣鍑讳簨浠� + mk.addEventListener('click', function(e) { + var target = e.target; + console.log(target); + showChangeMkPanle(target, homeId, homeName, addr); + }); + + }else { + layer.msg('瀹氫綅澶辫触锛岃妫�鏌PS鎴栫綉缁滐紒'); + } + }); + } + + // 鏄剧ず淇敼闈㈡澘 + 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); // 鐧惧害鍦板浘鍧愭爣杞寲涓篏PS + + 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鐐� + // 鍚憁k鐐规坊鍔爈abel + 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(); // 鑾峰彇缁忓害 -- Gitblit v1.9.1