码迷,mamicode.com
首页 > Windows程序 > 详细

百度地图API开发一——仿照现有测距实现测量面积功能

时间:2017-11-15 00:30:28      阅读:38      评论:0      收藏:0      [点我收藏+]

标签:项目   rip   效果图   img   block   java   生成   方式   面积   

   最近做了一个百度地图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


 

 

 

 

 

 

 

 

 

百度地图API开发一——仿照现有测距实现测量面积功能

标签:项目   rip   效果图   img   block   java   生成   方式   面积   

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!