百度地图第一次加载错位,拖动地图后地图标注显示正确。
部分代码如下:
jQuery(document).ready(function () {
var whpSession = $.parseJSON(getCookie("whpSession")); //获取session
if (whpSession == "" || whpSession == null) {
alert("请先登录!");
window.location.href = "../../login.html";
} else {
if (mylx == "gl") { $('#username').text(whpSession["UserName"]); } else {
$('#username').text(whpSession["企业名称"]);
}
}
App.init();
$('.page-container').css("height", $(window).height() - 42 - 35);
$('#allmap').css("height", $(window).height() - 42 - 35 - 255 - 85);
$("#tooslsHeight").click(function () {
if ($(this).hasClass("collapse")) {
$('#allmap').height(function (n, c) {
return c + 190;
});
} else {
$('#allmap').height(function (n, c) {
return c - 190;
});
}
});
ajax_new("../xzjdq/Ajax/Aqfxdjfbdzt.ashx?Method=GetWxtQy&qyid=" + qyid, "post", false, true, null, null, function (data) {
var json = $.parseJSON(data); //转换Jeson
if (json != "" && json != null) {
$.each(json, function (k, v) {
var point = new BMap.Point(v.经度, v.纬度);
addMarker(point, k, v); //添加标注
map.centerAndZoom(point, 20);
// map.setViewport(ply.getPath()); //调整视野
});
}
else {
alert("无标注信息!");
}
});
});
var qyid = getQueryString("qyid"); //企业ID
var mylx = getQueryString("mylx"); //登录类型
//多边形坐标
var polygonJson = "[]";
ajax_new("../Bzt/Ajax/Hd_Bzt.ashx", "post", false, true, { Method: "getQqzbjh", qyid: qyid }, null, function (data) {
if (data != "") {
polygonJson = data;
} else {
ajax_new("../xzjdq/Ajax/Aqfxdjfbdzt.ashx", "post", false, true, { Method: "GetWxtQy", qyid: qyid }, null, function (data) {
var json = $.parseJSON(data); //转换Jeson
if (json != "" && json != null) {
if (json[0]["经度"] != null && json[0]["经度"] != "") {
$.each(json, function (k, v) {
polygonJson = '[{"lng":' + (parseFloat(v.经度) - 0.0008).toFixed(6) + ',"lat":' + (parseFloat(v.纬度) + 0.0004).toFixed(6) + '},{"lng":' + (parseFloat(v.经度) + 0.0008).toFixed(6) + ',"lat":' + (parseFloat(v.纬度) + 0.0004).toFixed(6) + '},{"lng":' + (parseFloat(v.经度) + 0.0008).toFixed(6) + ',"lat":' + (parseFloat(v.纬度) - 0.0004).toFixed(6) + '},{"lng":' + (parseFloat(v.经度) - 0.0008).toFixed(6) + ',"lat":' + (parseFloat(v.纬度) - 0.0004).toFixed(6) + '}]';
console.log(polygonJson);
});
}
}
else {
alert("无标注信息!");
}
});
}
}, function (XMLHttpRequest, textStatus, errorThrown) {
$.messager.alert("消息框", "服务器访问失败");
});
var map = new BMap.Map("allmap", { mapType: BMAP_SATELLITE_MAP }); //存放地图的DIV //BMAP_HYBRID_MAP
var point = new BMap.Point(120.702133, 27.924669); //创建一个点(Y,X)
map.enableScrollWheelZoom(); //允许鼠标滚轮控制缩放
map.addControl(new BMap.NavigationControl()); //添加平移控件
map.addControl(new BMap.ScaleControl()); //比例尺控件
map.addControl(new BMap.OverviewMapControl()); //缩略地图控件
map.addControl(new BMap.MapTypeControl()); //地图类型控件
//console.log(polygonJson);
var polygon = new BMap.Polygon(JSON.parse(polygonJson), { strokeColor: "red", strokeWeight: 3, strokeOpacity: 1, fillOpacity: 0.3 }); //创建多边形
map.addOverlay(polygon); //增加多边形
//多边形编辑
var pd = true;
function enableEditing() {
if (pd) {
polygon.enableEditing();
pd = !pd;
} else {
var o_Point_now = polygon.getPath();
//弹出提示窗口
$.messager.confirm('提示', '是否保存新区域', function (r) {
if (r) {
ajax_new("../Bzt/Ajax/Hd_Bzt.ashx", "post", false, true, { Method: "SaveQqzbjh", qyid: qyid, str: JSON.stringify(o_Point_now) }, null, function (data) {
if (data == "保存成功") {
polygon.disableEditing();
pd = !pd;
$.messager.alert("系统提示", "保存成功");
} else {
$.messager.alert("系统提示", "保存失败");
}
},
function (XMLHttpRequest, textStatus, errorThrown) {
$.messager.alert("系统提示", "连接服务器失败", "error");
});
}
});
}
}
var icon = new BMap.Icon('../img/markers.png', new BMap.Size(23, 25));
function addMarker(point, v, info) {
var marker = new BMap.Marker(point, {
icon: icon
});
marker.addEventListener("click", function () {
showcpinfo(info.企业ID);
});
map.addOverlay(marker);
}
为了速度解决问题,我觉得楼主可以试试第一次加载时,加几行js触发拖动的代码试试。
遇到同样的问题,你试试吧初始地图的div给设置固定的高度和宽度就好了!
但是 这个只是临时的解决办法!