百度地圖 JS API 的實踐總結


在項目中常常會用到百度地圖的JS API,以下內容是自己在實踐過程中遇到問題的簡要總結:

如:已經創建了一個map實例,var map = new BMap.Map("allmap"),其中,"allmap"是節點id
1.設置城市中心點

  • 在初始化地圖中心點時,最好不要使用中文地址名稱,而是使用坐標,像這樣:
    map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
    否則可能出現設置使點顯示在最佳視野的語句不起作用的情況。

2.使所有標注點顯示在最佳視野中

  • map.setViewport(pointsArray);
    其中:參數pointsArray是點(而不是覆蓋物)的數組,點即通過new BMap.Point()語句實例得到的。
    例如,通過如下方式得到點的數組:
    var pointsArray = [];
    pointsArray.push(new BMap.Point(parseFloat(經度), parseFloat(緯度)));
    parseFloat是將其轉換為浮點數

3.頁面dom元素與地圖上面覆蓋物的聯動

  • 添加覆蓋物,並創建數組存儲覆蓋物對象,再給dom節點添加鼠標移入移出事件,同時,通過索引來處理對應的覆蓋物對象。(備注:當節點沒有對應的坐標時,index就會無法正確對應)
    var marker = new BMap.Marker(new BMap.Point(parseFloat(經度), parseFloat(緯度)));
    var markerArray = [];
    markerArray.push(marker);
$('#wrapper').off('mouseenter', 'a').on('mouseenter', 'a', function(ev) {
    var ind =  $(this).parents('tr').index();
    //設置點的彈跳動畫
    pointsMarker[ind].setAnimation(BMAP_ANIMATION_BOUNCE);
});
$('#wrapper').on('mouseleave', 'a', function(ev) {
	var ind = $(this).parents('tr').index();
	//取消點的彈跳動畫
	pointsMarker[ind].setAnimation();
});	
  • 其中,.off('mouseenter', 'a')是防止事件重復綁定,造成多次執行的情況。

4.清空地圖上面的所有覆蓋物

  • 語句:map.clearOverlays();

百度地圖API鏈接:http://lbsyun.baidu.com/index.php?title=jspopular
類參考(詳細api):http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html


免責聲明!

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



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