|
前端页面:
$("#reviseBan").click(function(){
var ModifyMap = new BMap.Map("ModifyMap",{enableMapClick: false});
var pointer = new BMap.Point(res.data.BanGpsX,res.data.BanGpsY); ModifyMap.centerAndZoom(pointer, 15); ModifyMap.setCenter(pointer); marker = new BMap.Marker(pointer); ModifyMap.addOverlay(marker); var xy = document.getElementById('xy'); xy.value=res.data.BanGpsX+','+res.data.BanGpsY; ModifyMap.addEventListener("click",function(e){ opsiX = e.point.lng; opsiY = e.point.lat; point = new BMap.Point(opsiX,opsiY); if(e.overlay){ marker.οndblclick=function(){ url='/public/baidumap/big.html?position='+xy.value; window.open(url,'parent'); }; }else{ ModifyMap.clearOverlays() marker = new BMap.Marker(point); // 创建标注 ModifyMap.addOverlay(marker); xy.value=opsiX+','+opsiY; }
});
这是我的代码。不能显示有两个原因:
1.
var ModifyMap = new BMap.Map("ModifyMap",{enableMapClick: false});
创建实例的时候写在了click里面
2.容器处于隐藏状态导致的,api会认为地图宽高为0。
解决办法:1.把ModifyMap移入click外面
2.让弹出层dispaly=block;我layer的弹出层,执行地图之前要弹出层display=block;关闭的时候layer使用end方法让他隐藏
修改后代码:
$("#reviseBan").click(function(){ var obj = $('.checkId'); var objLength = $('.checkId').length; for(var i = 0;i < obj.length;i++){ if(obj[i].checked){ var BanID = obj.eq(i).val(); } } //var vanId = $('.checkId').eq(0).val(); if(BanID == undefined){ layer.msg('请先选择要修改的信息'); }else{ $.get('/ph/ConfirmBanInfo/edit/BanID/'+BanID,function(res){ res = JSON.parse(res); console.log(res); if(res.data.BanGpsX==""||res.data.BanGpsY==""){ res.data.BanGpsX = "114.334228"; res.data.BanGpsY = "30.560372"; }; $('#modifyForm').css('display','block'); var ModifyMap = new BMap.Map("ModifyMap",{enableMapClick: false}); ModifyMap.clearOverlays(); var pointer = new BMap.Point(res.data.BanGpsX,res.data.BanGpsY); ModifyMap.centerAndZoom(pointer, 15); // ModifyMap.setCenter(pointer); marker = new BMap.Marker(pointer); ModifyMap.addOverlay(marker); // ModifyMap.centerAndZoom(pointer, 15); var xy = document.getElementById('xy'); xy.value=res.data.BanGpsX+','+res.data.BanGpsY; ModifyMap.addEventListener("click",function(e){ opsiX = e.point.lng; opsiY = e.point.lat; point = new BMap.Point(opsiX,opsiY); if(e.overlay){ marker.οndblclick=function(){
|