百度地圖 JS API 的實踐總結

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

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

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

2.使全部標註點顯示在最佳視野中php

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

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

  • 添加覆蓋物,並建立數組存儲覆蓋物對象,再給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.清空地圖上面的全部覆蓋物java

  • 語句:map.clearOverlays();

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

相關文章
相關標籤/搜索