百度地图API开发一——仿照现有测距效果实现测面功能
2024-08-21 13:59:39
最近做了一个百度地图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
最新文章
- Kafka0.10的新特性一览
- jQuery中使用ajax,$.post
- Hdu5093 Battle ships 二分图
- js实现倒计时及时间对象
- [git]图解git常用命令
- JavaWeb学习总结(一)—JavaWeb开发入门及环境搭建
- android浮动搜索框
- weblogic日志小结
- Android布局详解之一:FrameLayout
- uublog在线测试demo
- 主从及转发DNS搭建
- java多线程(8)---阻塞队列
- django的闪现和增、删、改、查
- Nginx(一)-windows下的安装配置
- c#单例设计模式
- vhdl 边沿
- java生产环境增量发版陷阱【原】
- windows 远程连接
- 学习Git---20分钟git快速上手
- 【第八章】 springboot + mybatis + 多数据源