解決百度地圖中心偏移到左上角


訂單中心點左上角位置,網上查了很多資料,說是在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;
   });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM