百度鹰眼轨迹iOS SDK:一套能够进行绑路纠偏的轨迹开发工具包

 ,  ,  2

屏幕快照 2016-03-09 下午8.39.48

简介

百度鹰眼轨迹iOS SDK(下载地址:http://lbsyun.baidu.com/index.php?title=ios-yingyan/sdkandev-download)是一套基于iOS 8.0及以上版本设备的轨迹服务应用程序接口。配合  鹰眼轨迹服务 ,您可以开发适用于移动设备的轨迹追踪应用,轻松实现实时轨迹追踪、历史轨迹查询、地理围栏报警等功能。

百度鹰眼轨迹iOS SDK提供的服务是免费的,任何非营利性应用程序均可直接使用,用于商业目的产品使用前请参考 使用须知 。在您使用百度鹰眼轨迹iOS SDK之前,请先阅读 百度地图API使用条款 。

功能介绍

  • 轨迹追踪:按照设定的频率主动采集实时轨迹;
  • 轨迹存储:云端实现海量轨迹数据存储;
  • 轨迹查询:查询被追踪者实时位置、历史轨迹和里程;
  • 轨迹纠偏:云端对轨迹进行实时去噪、绑路(需申请开通)、抽稀处理,解决轨迹偏移问题;
  • 地理围栏:当被追踪者进入一定范围(圆形、多边形)的虚拟地理区域时,监控者可以接收到自动报警通知。

注意:百度鹰眼轨迹iOS SDK没有地图相关功能,也就是说,如果要根据查询到的轨迹数据将轨迹显示在地图上,就必须要基于 百度地图iOS SDK 进行使用,因为显示地图和在地图上添加轨迹的接口都在百度地图iOS SDK里面。

申请密钥

其实,申请密钥(key)应该是在使用百度地图iOS SDK之前就进行的,毕竟百度鹰眼轨迹iOS SDK要基于百度地图iOS SDK进行使用,而两者同为百度开放平台开发工具,可以共用一套密钥。申请密钥具体步骤如下:

第一步:进入 API控制台

屏幕快照 2016-03-08 下午11.29.34

第二步:点击 “创建应用”,进入密钥申请页面。填写应用名称,选择应用类型为 “iOS SDK”,填入安全码(应用的Bundle Identifier:TARGET  —>  General  —>  Bundle Identifier),确认填写无误后,点击 “提交” 即可获取密钥。

屏幕快照 2016-03-08 下午11.31.28

创建鹰眼轨迹服务

使用任何鹰眼轨迹接口前,必须先在 轨迹管理台 中创建鹰眼轨迹服务,获得servie_id后,方可正式使用鹰眼轨迹。一个service_id(即鹰眼轨迹工程)对应一个的轨迹管理系统,管理至多10万条轨迹。

第一步:进入 轨迹管理台 。

屏幕快照 2016-03-09 下午8.46.12

第二步:点击“创建鹰眼服务”,进入鹰眼服务创建页面,选择服务类型,填写鹰眼服务名称和服务简介,确认填写无误后,点击“创建”。创建成功后即可获取服务ID(也就是servie_id),开发中需要用到,请妥善保管。

屏幕快照 2016-03-09 下午8.47.04

注意:点击服务名称,可以进入服务管理页面,在此页面可以查看并管理所有通过该轨迹服务产生的位置和轨迹。

配置工程

第一步:导入鹰眼SDK的Framework。

在 TARGETS  —>  General  中找到 Embedded Binaries ,将下载的BaiduTraceSDK.framework文件拖到该项下的空白处,在弹出的窗口中选择下图所示选项,然后点击 “Finish” 按钮。

屏幕快照 2016-03-09 上午12.11.02

第二步:修改 “Info.plist” 文件。

由于百度鹰眼轨迹iOS SDK需要使用后台定位功能,而且需要进行ATS(App Transport Security)配置,要对 “Info.plist” 文件进行修改,右键点击 “Info.plist” 文件 —> Open AS —> Source Code,在其中添加代码:

第三步:根据需要导入头文件。

第四步:配置 Search Paths 。

在 TARGETS  —>  Build Settings  —>  Search Paths 中找到 Framework Search Paths 选项,双击选项栏右侧,添加 $(PROJECT_DIR)/BaiduTraceSDK.framework/ ,然后在其下方的 Header Search Paths 选项中,添加 $(PROJECT_DIR)/BaiduTraceSDK.framework/Headers/ 。

第五步:设置允许包含Swift代码。

百度鹰眼轨迹iOS SDK由Swift语言编写, 请在 TARGETS  —>  Build Settings 中搜索 Embedded Content Contains Swift Code 选项,把该选项设置成Yes,以保证可以在工程中使用Swift编写的SDK。

第六步:配置 Bitcode

在 TARGETS  —>  Build Settings 中搜索 Enable Bitcode 选项,该选项默认是Yes,如果工程中有任意一个第三方库不支持 Bitcode ,则需要把该选项设置为No,否则在真机调试时会报错。

注意:百度开放平台给出的开发指南中还包括了对 JSONKit 开源库的配置,笔者认为完全可以使用系统的JSON数据处理方法,在此就略去了这一步骤。

使用

一、签订协议

实现鹰眼轨迹服务的功能时,要根据功能需求签订协议,以便在需要时调用协议方法:

  • ApplicationServiceDelegate协议:以便开始和结束追踪时回调协议方法
  • ApplicationTrackDelegate协议:以便查询历史轨迹时回调协议方法
  • ApplicationFenceDelegate协议:以便在实现地理围栏功能时回调协议方法
  • BMKMapViewDelegate协议:以便绘制轨迹线时回调协议方法
  • 其它需要用到的协议

二、实例化BTRACE对象

使用百度鹰眼iOS SDK必须先实例化一个BTRACE对象:

三、轨迹追踪

1、设置轨迹采集周期和打包周期

使用鹰眼SDK,开发者可自定义位置采集周期(单位:s),同时为节省应用流量,采用了定期打包一批位置点回传至服务器的策略,开发者可自定义打包周期(单位:s)。默认的采集周期是5秒,上传周期是30秒,选择更短的打包和上传周期将消耗更多地电量和流量。

2、开启轨迹追踪

3、结束轨迹追踪

4、轨迹点属性数据上传

轨迹中的每个位置点可拥有一系列开发者自定义的描述字段,如汽车的油量、发动机转速等,用以记录行程中的实时状态信息。开发者须重写ApplicationServiceDelegate中的trackAttr()接口,在回传轨迹点时回传属性数据。

注:SDK根据位置采集周期回调该接口,获取轨迹属性数据。

四、轨迹查询

百度鹰眼轨迹iOS SDK提供了实时位置查询和历史轨迹查询两个接口,查询指定被追踪者位置。

1、查询实时位置

2、查询历史轨迹

3、获取轨迹数据并绘制

五、地理围栏

地理围栏是指一定范围(圆形、多边形)的虚拟地理区域。当被追踪者进入、离开该区域时,监控者可以接收到自动报警通知。目前,鹰眼仅支持圆形多边形围栏。

百度鹰眼轨迹iOS SDK提供了地理围栏的增删改查接口,以及查询某围栏内被监控者状态、历史报警信息接口。

对于不需要采集追踪者轨迹的监控者应用(如车辆管理、人员管理、儿童安全等监控者),operationMode可设置为1,此时将不采集轨迹,但可查询被追踪者轨迹并接收报警信息。

注意:所有地理围栏相关的方法都是异步请求,ApplicationFenceDelegate协议包含了各个方法的回调方法,需要遵循该协议以获取地理围栏相关的请求结果。 具体回调方法请参考 示例工程 ,示例工程中有详细的适用场景和使用方法。

1、创建地理围栏

2、更新地理围栏

3、接收报警信息

4、查询实时状态

查询被监控对象实时状态:围栏内或围栏外。

5、查询历史报警信息

6、延迟报警

当监控者在一个时间段内不希望接收到某围栏的报警信息,可使用此方法。

常见问题及解决方法

一、真机调试报错:

xxx does not contain bit code……

问题原因:

工程中使用了不支持 Bitcode 的第三方库

解决方法:

在 TARGETS  —>  Build Settings 中搜索 Enable Bitcode 选项,将该选项设置为No。

二、真机调试报错:

dyld:Library not loaded:……

Referenced from:……

Reason:image not found

问题原因:

可能有很多种原因

解决方法:

1、请尝试 clean 一下工程, command + shift + k ;

2、在 TARGETS  —>  Build Settings 中搜索 Embedded Content Contains Swift Code 选项,检查是否设置为Yes;

3、如果您是使用开发者证书进行真机调试,特别是之前使用Apple ID进行真机调试,现在换为使用开发者证书进行真机调试,请尝试:

a . 打开 钥匙串访问 ,将登录下的开发者证书删除,重新下载,双击打开添加;

b . 检查Xcode中开发者证书真机调试的相关设置。

三、反复开始追踪和停止追踪之后,CPU占用率飙升

问题原因:

可能使用的不是最新版的SDK

解决方法:

下载最新版的百度鹰眼轨迹iOS SDK,版本号:2.0.2,上线日期:2016年3月10日,该版本解决了反复开始追踪和停止追踪之后,CPU占用率飙升的问题,提升了稳定性。

四、在模拟器上无法运行

问题原因:

百度鹰眼轨迹iOS SDK分为开发版和上架版,使用上架版无法在模拟器上进行调试

解决方法:

在开发过程中使用开发版SDK,但开发版SDK不可提交至APP Store发布,当您的应用提交至APP Store进行发布时,请替换为上架版。

更新日志

百度鹰眼轨迹iOS SDK上线时间不是很长,可能更新会比较频繁,获取更多更新信息请阅读 更新日志

 

官方网站:http://lbsyun.baidu.com/index.php?title=ios-yingyan

打赏支持我整理更多优质资源,谢谢!

打赏编辑

打赏支持我整理更多优质资源,谢谢!

任选一种支付方式

3 6 收藏

资源整理者简介:魏川程



直接登录
最新评论
  • 博主,
    二、真机调试报错,我按你说的改了,还是报这样的错误,怎么办啊????

    • 魏川程   2016/12/01

      已经很久没做百度地图的相关功能了,对于你的这个报错,我不清楚具体情况也无法解决,建议去 Google 一下,StackOverflow 上面有很多类似的问题,希望你能找到答案

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer