百度地圖API開發一——仿照現有測距效果實現測面功能


   最近做了一個百度地圖API的開發項目,里面有測量距離和測量面積的功能需求。測量距離百度給出了封裝好的javascript包——BMapLib.DistanceTool,效果如下: 

這個效果體驗很好;測量面積也給出了開源javascript包——BMapLib.DrawingManger,如下:

 

但這個效果和體驗就很差了。客戶希望測量面積能實現和測距一樣的效果體驗(鼠標在移動繪制過程中實時顯示繪制面積,且樣式效果要一樣),經過一番折騰,修改了百度測距的javascript包,終於搞定。先上效果圖:



實現方法:

主要修改了DistanceTool開源包里面的鼠標點擊事件distClick和鼠標移動事件distMove這兩個方法。

1、通過單擊事件distClick獲取構造面的path,用到Polygon的setPath方法,然后加到地圖中,並通過計算該Polygon的面積顯示最終雙擊結束后提示框的總面積;

2、通過移動事件distMove獲取鼠標移動過程的位置點point,利用Polygon類的setPositionAt方法生成動態的面。這一步需要計算鼠標移動過程中的實時面積,構造一個臨時面polygon,並不需要加到地圖中,在鼠標移動過程中將移動點point加到臨時面path中,計算該Polygon的面積即為臨時面積。

注:計算Polygon的面積采用百度開源庫GeoUtils,BMapLib.GeoUtils.getPolygonArea方法。

如有不對之處,歡迎批評指正!

聯系方式:QQ:1085634689


 

 

 

 

 

 

 

 

 


免責聲明!

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



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