JavaScript引入百度地圖標注點與坐標偏移問題


在js引入百度地圖時碰到了問題,就是坐標點和位置標注不在一個位置發生偏移。位置標注在地圖中心,但是用經緯度定位的坐標點卻跑到了地圖上方

js代碼如下:

// 創建地圖實例  
var map = new BMap.Map("allmap");
map.enableScrollWheelZoom(true); //開啟鼠標滾輪縮放
// 創建點坐標  
var point = new BMap.Point(121.529376,31.213313);
// 初始化地圖,設置中心點坐標和地圖級別
map.centerAndZoom(point, 16);
var opts = {
    type: BMAP_NAVIGATION_CONTROL_LARGE
}
map.addControl(new BMap.NavigationControl(opts));
var marker = new BMap.Marker(point); // 創建標注    
map.addOverlay(marker); // 將標注添加到地圖中

問題界面如下:此時坐標點和標注不是重疊的。

 

此時只有當我拖拽或縮放地圖,才能夠讓地圖重新定位准確,讓坐標和標注點都在中心位置,后來百度了很多方法,添加以下代碼能夠解決問題

var loadCount = 1;
map.addEventListener("tilesloaded",function(){
    if(loadCount == 1){
     map.setCenter(point);
     }
     loadCount = loadCount + 1;
});

問題解決后界面如下:

tilesloaded是檢測地圖塊是否加載完成,當地圖所有圖塊完成加載時觸發此事件,每次拖動地圖也會觸發tilesloaded事件。

暫時不知道原因 是什么,先做個記錄

參考鏈接:https://blog.csdn.net/eliane_/article/details/80311512#commentBox


免責聲明!

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



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