这个涉及到的就是js执行顺序的问题了,因为百度地图的js先进行执行,根据并不显示的modal 来定位了地图中心点。
所以当 modal弹出时,中心点会错位。
解决办法 (在 modal的载入事件中执行地图 中心点定位事件)
var map = new BMap.Map("container");
//右上角,仅包含平移和缩放按钮
var top_right_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_RIGHT, type: BMAP_NAVIGATION_CONTROL_SMALL});
map.addControl(top_right_navigation);
// 创建地址解析器实例
var myGeo = new BMap.Geocoder();
$('#myModal').on('shown.bs.modal', function (e) {
myGeo.getPoint("无锡市滨湖区联创大厦西楼", function(point){
if (point) {
map.centerAndZoom(point, 15);
map.addOverlay(new BMap.Marker(point));
}else{
alert("您选择地址没有解析到结果!");
}
}, "北京市");
//初始化后移除model载入完成事件
$("#myModal").off('shown.bs.modal')
})