需求
最近出了个记录道路路长&河道河长的巡路巡河轨迹的需求。
需要达到如下图所示的效果。
最开始没使用第三方SDK,应用直接监听系统位置变动事件来做的,效果不是很理想。
定位点会跳来跳去,自己写的点位矫正方法效果也不是很好;
轨迹虽然出来了,但是经不起放大看;里程数据和实际出入也比较大;有的时候连参考意义都没有。
最终考虑使用百度的鹰眼服务来完善相关功能。
一、鹰眼服务简介
鹰眼服务是百度地图提供的一套轨迹管理服务,提供各端SDK和API供开发者便捷接入,追踪您所管理的车辆/人员等运动物体。基于鹰眼提供的接口和云端服务,开发者可以迅速构建一套完全属于您自己的完整、精准且高性能的轨迹管理系统,可应用于车队管理、人员管理等领域。
既然人家已经给我们提供了完善的轨迹功能,那我们怎么能不用用看呢。
二、申请AK和创建鹰眼服务空间
-
AK 用于绑定移动应用。百度应用管理-点击跳转。
申请时相关参数:- 包名:
com.baidu.track
(此为示例工程的包名)。 - 发布版SHA1:根据你自己的打包文件获取(获取方法见获取打包文件(.keystore)的MD5/SHA1/SHA256)。
- 开发版SHA1:获取方法见获取开发版MD5/SHA1/SHA256。
- 包名:
-
鹰眼服务空间用于储存和管理终端相关信息。百度鹰眼服务管理-点击跳转。
三、导入官方示例工程
示例工程下载页 - 点击跳转
下载好示例工程后将文件解压并导入Android Studio。
- 配置AK参数
在Mainfest.xml文件中搜索com.baidu.lbsapi.API_KEY
,将值设置为申请的AK值。 - 配置服务空间ID
在TrackApplication.java文件中搜索serviceId
,将值设置为申请的服务空间ID。
四、运行示例测试效果
-
在手机端打开轨迹服务
-
在管理端查看终端信息