現象一: 地圖彈窗先隱藏 ->顯示地圖彈窗->設置marker -> 設置centerAndZoom
看效果標注層定點位置有問題(因顯隱),中心點還是相對於左上角。(不知道是不是這樣,先標記待查)
現象二: 地圖彈窗先隱藏->設置marker -> 設置centerAndZoom ->顯示地圖彈窗
隱藏時左上角是地圖中心點,所以標注在左上角(上圖為了展示效果,手動將地圖向右下角移動了一下)
解決:每次顯示地圖之前都需要重新初始化地圖(即需要重新執行 map = new BMap.Map("dituContent");...),初始化的內容可以如下:
var map = new BMap.Map("dituContent"); var point = new BMap.Point(longitude, latitude); map.centerAndZoom(point, opts.level); mapGeo = new BMap.Geocoder(); map.enableDragging();// 啟用地圖拖拽事件,默認啟用(可不寫) map.enableScrollWheelZoom();// 啟用地圖滾輪放大縮小 map.enableDoubleClickZoom();// 啟用鼠標雙擊放大,默認啟用(可不寫) map.enableKeyboard();// 啟用鍵盤上下左右鍵移動地圖 map.addEventListener("click", function(e) { }) localSearch = new BMap.LocalSearch(map); localSearch.enableAutoViewport(); // 允許自動調節窗體大小