转载自:https://blog.youkuaiyun.com/xch_yang/article/details/103170627
先看下实现效果:
鹰眼是一套轨迹管理服务,接入该服务后,可追踪车辆/人员等运动物体,实现实时定位、轨迹追踪和轨迹存储查询等功能。基于鹰眼提供的接口和云端服务,可以迅速构建一套完全属于您自己的完整、精准且高性能的轨迹管理系统,可应用于车队管理、人员管理等领域。具体请查看官网介绍。
这篇文章就讲一下如何在Android App中实现轨迹追踪,既然要追踪轨迹,肯定得先获取这个设备的一系列轨迹点,这就需要我们在终端集成鹰眼服务。我们以Android手机为例,集成鹰眼轨迹SDK后,App将会按照我们设定的频率主动采集实时轨迹。
什么是Android鹰眼轨迹SDK?
鹰眼轨迹是一套基于Android 2.1及以上版本设备的应用程序接口, 可以通过该接口实现轨迹追踪功能:
- 轨迹追踪:按照设定的频率主动采集实时轨迹
- 轨迹存储:云端实现海量轨迹数据存储
- 轨迹查询:查询被追踪者实时位置、历史轨迹和里程
- 轨迹纠偏:云端对轨迹进行实时去噪、绑路、抽稀处理,解决轨迹偏移问题
- 地理围栏:当被追踪者进出一定范围(圆形、多边形、线型、行政区)的虚拟地理区域时,监控者可以接收到自动报警通知
- 图像存储:支持随轨迹上传、存储和查询图像文件
接入鹰眼服务
开发工具:Android Studio
一. 获取AK
使用百度鹰眼Android SDK,需要先获取服务密钥(AK),申请地址:http://lbsyun.baidu.com/apiconsole/key,申请时需要用到开发版SHA1值和发布版SHA1值,详细教程可查看:Android获取SHA1(开发版和发布版)
二. 创建鹰眼服务
1. 创建服务
进入鹰眼轨迹管理平台,点击"创建服务"按钮,在弹窗中填写信息后完成服务创建。
2. 获取 service_id
创建服务成功后即可列表左侧的"系统 ID(service_id)",如:217548,即为访问该service的唯一标识,在后续的接口调用中均要使用。
三. 接入鹰眼服务
1. 配置库文件
SDK下载地址:http://lbsyun.baidu.com/index.php?title=android-yingyan/sdkandev-download
下载的压缩包解压后将jar包和so文件复制到项目lib目录下,并在app build.gradle的android标签中加入如下代码并Sync Now。
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
2. 设置AndroidManifest.xml
<service
android:name="com.baidu.trace.LBSTraceService"
android:enabled="true"
android:process=":remote"/>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="上面申请的ak值" />
3. 加入相关权限
<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!-- 这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<use