訂單中心點左上角位置,網上查了很多資料,說是在div在隱藏的狀態下創建BMap會出現這種情況,此時,默認為寬度和高度都為0,中心點自然就跑到左上角去了,網上很多說了很多解決方案,map.centerAndZoom(point,15); map.setCenter(point); 查看百度API還有panTo();等等一些方法,還是沒有解決問題,最終在API里面事件里找到了:地圖加載完畢的事件,等地圖加載完畢,在這個事件里在將地圖的中心點設置成自己想要的點,這樣會存在一個問題,就是如果設置的中心點是固定的點,那么每次拖動地圖的時候最后的中心點都會在設置的固定點上,也就是會出現拖拽后又返回的的情況,像是有彈力般的感覺,這是就需要在js里定義一個變量,只讓這個事件作用一次,就是指在第一次加載該地圖頁面的時候用該事件設置一次中心點,這樣就完美解決該問題:
var jd = response.getParameter("jd");
var wd = response.getParameter("wd");
// 創建Map實例
var map = new BMap.Map("container");
// 創建地圖實例
var point = new BMap.Point(jd, wd);
// var point = new BMap.Point(jd, wd);
// 創建點坐標
map.centerAndZoom(point,15);
// 初始化地圖,設置中心點坐標和地圖級別
var marker = new BMap.Marker(point); // 創建標注
map.addOverlay(marker);
map.addControl(new BMap.NavigationControl());
map.addControl(new BMap.ScaleControl());
map.addControl(new BMap.OverviewMapControl());
var loadCount = 1;
map.addEventListener("tilesloaded",function(){
if(loadCount == 1){
map.setCenter(point);
}
loadCount = loadCount + 1;
});