天天看點

centerandzoom 無效_在bootstrap modal 中加載百度地圖的資訊視窗失效解決方法

這個問題其實很傻,解決方法沒有任何技術含量,隻是記錄下工作中發生的事。

前陣子給一個汽車集團客戶做了一個經銷商查詢系統,其中一個功能是使用地圖示注經銷商店面位址,并且實作導航功能。

頁面示範位址:http://www.lyytqm.com/Dealerships

點選位址區域在模态視窗中顯示百度地圖,并在地圖中标注點位,顯示視窗資訊,但資訊視窗展示的資訊頻繁失效,僅顯示名稱。

更換了各種加載資料方式不能解決,在蹲廁所時想到了原因,即可給出解決方法。

原因是bootstrap modal 以及動畫 沒過完全渲染完成的情況下,資訊就加載完成,這種待模态視窗完全渲染後,視窗資訊就不會正常顯示。

解決方法是使用shown.bs.modal事件,待完全演染完成視窗後,打插入标注點,以及視窗資訊。

代碼如下:

$(‘#map-location-modal‘).on(‘shown.bs.modal‘, function (e) {

_ShowMap(data.lng, data.lat, data.title, data.address, data.telphone, ‘18‘);

})

function _ShowMap(lng, lat, name, addrsee, phone, zoom) {

var message = ‘

‘ + name + ‘

位址:‘ + addrsee + ‘

電話:‘ + phone + ‘

+ ‘

+ ‘ ‘

+ ‘ ‘

+ ‘ ‘

+ ‘ ‘

+ ‘ ‘

+ ‘ ‘

+ ‘ 導航‘

+ ‘

‘;

var map = new BMap.Map("map-container");

var marker = new BMap.Marker(new BMap.Point(lng, lat));

var infoWindow = new BMap.InfoWindow(message);

map.enableScrollWheelZoom(true); //開啟滑鼠滾輪縮放

map.centerAndZoom(new BMap.Point(lng, lat), zoom);

map.addControl(new BMap.NavigationControl());

map.addControl(new BMap.MapTypeControl()); //添加地圖類型控件

map.addOverlay(marker);

marker.addEventListener("click", function () {

this.openInfoWindow(infoWindow);

});

marker.openInfoWindow(infoWindow);

}

原文:http://www.cnblogs.com/webdu/p/7824731.html