iOS鹰眼轨迹SDK
重要:为进一步采取加强对最终用户个人信息的安全保护措施,从鹰眼SDK v3.1.5版本起,请开发者务必确保调用SDK任何接口前先调用隐私合规接口setAgreePrivacy,否则可能会无法正常使用相关功能。具体可参考开发指南-开发注意事项-隐私政策接口说明。
产品简介
注意:鹰眼iOS SDK V3.1.0 及以上版本已适配iOS 13。您使用本服务,即您承诺并保证向使用您产品(网页或应用程序)的用户披露有关数据使用情形,并确保是在用户知情、并授权允许的情况下使用百度地图开放平台的相关服务获取用户位置数据等必要数据以提供相关服务。 具体隐私政策详见《百度地图开放平台产品和服务隐私政策》。
立即体验 >>
重点功能简介
- 轨迹追踪
简介鹰眼为每一个应用提供1000万终端以上轨迹管理能力,并且支持全球轨迹追踪。鹰眼提供多种API和SDK供开发者从各种终端追踪轨迹,如:手机、卫星定位器、智能后视镜等硬件设备。此外,鹰眼也支持开发者从服务端上传轨迹。
鹰眼为开发者免费存储最近1年的轨迹数据。鹰眼采用多机房多实例分布式存储,并定期自动备份,保障数据存储安全。功能展示#import <BaiduTraceSDK/BaiduTraceSDK.h> // 开启服务之间先配置轨迹服务的基础信息 BTKServiceOption *basicInfoOption = [[BTKServiceOption alloc] initWithAK:@"您的AK" mcode:@"您的bundle id" serviceID:@"您的serviceID" keepAlive:YES]; [[BTKAction sharedInstance] initInfo:basicInfoOption]; // 开启服务 BTKStartServiceOption *startServiceOption = [[BTKStartServiceOption alloc] initWithEntityName:@"entityName"]; [[BTKAction sharedInstance] startService:startServiceOption delegate:self]; // 停止服务 [[BTKAction sharedInstance] stopService:self]; //开始采集 [[BTKAction sharedInstance] startGather:self]; //结束采集 [[BTKAction sharedInstance] stopGather:self]; /** 开启轨迹服务的回调方法 @param error 开启轨迹服务的结果 */ -(void)onStartService:(BTKServiceErrorCode) error { } /** 停止轨迹服务的回调方法 @param error 停止轨迹服务的结果 */ -(void)onStopService:(BTKServiceErrorCode) error { } /** 开始采集的回调方法 @param error 开始采集的操作结果 */ -(void)onStartGather:(BTKGatherErrorCode) error { } /** 停止采集的回调方法 @param error 停止采集的操作结果 */ -(void)onStopGather:(BTKGatherErrorCode) error { }
http://mapopen-pub-iossdk.cdn.bcebos.com/yingyan/video/TrackTrace.mp4
- 空间搜索
简介鹰眼提供丰富的空间搜索能力,支持搜索圆形、多边形、行政区范围内的终端实时位置,并统计终端数量。利用该服务,开发者可实现例如:搜索当前地图视野内的终端、北京市内的终端等功能。功能展示
// 设置检索的过滤条件 BTKQueryEntityFilterOption *filterOption = [[BTKQueryEntityFilterOption alloc] init]; filterOption.entityNames = @[@"Test"]; filterOption.activeTime = [[NSDate date] timeIntervalSince1970] - 7 * 24 * 3600; // 设置检索结果的排序方式 BTKSearchEntitySortByOption * sortbyOption = [[BTKSearchEntitySortByOption alloc] init]; sortbyOption.fieldName = @"loc_time"; sortbyOption.sortType = BTK_ENTITY_SORT_TYPE_DESC; // 构造检索请求对象 BTKAroundSearchEntityRequest *request = [[BTKAroundSearchEntityRequest alloc] initWithCenter:center inputCoordType:BTK_COORDTYPE_BD09LL radius:1000 filter:filterOption sortby:sortbyOption outputCoordType:BTK_COORDTYPE_BD09LL pageIndex:1 pageSize:10 ServiceID:@"您的serviceID" tag:@"本次请求的标示"]; // 发起检索请求 [[BTKEntityAction sharedInstance] aroundSearchEntityWith:request delegate:self]; #pragma mark - entity终端检索 /** 圆形区域检索Entity终端实体的回调方法 @param response 检索结果 */ -(void)onEntityAroundSearch:(NSData *)response { dispatch_async(dispatch_get_main_queue(), ^{ NSDictionary *content = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableContainers error:nil];//转换数据格式 NSLog(@"检索结果:%@",content); }); }
http://mapopen-pub-iossdk.cdn.bcebos.com/yingyan/video/SpaceSearcher.mp4
- 轨迹查询、纠偏与展示
简介轨迹查询:利用鹰眼高性能轨迹查询服务,开发者实时查询任意时段的轨迹。实时查询是指:轨迹点一旦成功上传到鹰眼云端,在小于100毫秒的时间内,即可通过接口查询到该轨迹点。鹰眼还提供轨迹批量导出功能,供开发者下载历史轨迹数据。 轨迹纠偏:为纠正轨迹漂移,鹰眼提供专业的轨迹纠偏绑路。利用该服务,开发者可纠正轨迹漂移,展示平滑连贯的轨迹。鹰眼分别针对驾车、骑行、步行提供了不同的轨迹纠偏绑路算法,适用于多种交通工具的轨迹校正。功能展示
// 构造请求对象 NSUInteger endTime = [[NSDate date] timeIntervalSince1970]; BTKQueryHistoryTrackRequest *request = [[BTKQueryHistoryTrackRequest alloc] initWithEntityName:@"entityA" startTime:endTime - 84400 endTime:endTime isProcessed:TRUE processOption:nil supplementMode:BTK_TRACK_PROCESS_OPTION_SUPPLEMENT_MODE_WALKING outputCoordType:BTK_COORDTYPE_BD09LL sortType:BTK_TRACK_SORT_TYPE_DESC pageIndex:1 pageSize:10 serviceID:103044 tag:13]; // 发起查询请求 [[BTKTrackAction sharedInstance] queryHistoryTrackWith:request delegate:self]; /** 轨迹查询的回调方法 @param response 查询结果 */ -(void)onQueryHistoryTrack:(NSData *)response { //解析数据,绘制轨迹 }
http://mapopen-pub-iossdk.cdn.bcebos.com/yingyan/video/TrackSearch.mp4
- 里程计算与补偿
简介鹰眼iOS SDK提供了查询里程功能,可查询某终端实体在一段时间内的里程,支持计算纠偏后的里程,用路线规划补偿中断轨迹的里程。功能展示
// 设置纠偏选项 BTKQueryTrackProcessOption *option = [[BTKQueryTrackProcessOption alloc] init]; option.denoise = TRUE; option.mapMatch = TRUE; option.radiusThreshold = 15; option.transportMode = BTK_TRACK_PROCESS_OPTION_TRANSPORT_MODE_DRIVING; NSUInteger endTime = [[NSDate date] timeIntervalSince1970]; // 构造请求对象 BTKQueryTrackDistanceRequest *request = [[BTKQueryTrackDistanceRequest alloc] initWithEntityName:@"entityA" startTime:endTime - 84400 endTime:endTime isProcessed:TRUE processOption:nil supplementMode:BTK_TRACK_PROCESS_OPTION_SUPPLEMENT_MODE_WALkING serviceID:100000 tag:12]; // 发起查询请求 [[BTKTrackAction sharedInstance] queryTrackDistanceWith:request delegate:self];
http://mapopen-pub-iossdk.cdn.bcebos.com/yingyan/video/MileageCompensation.mp4
- 地理围栏(监控终端状态)
简介鹰眼提供地理围栏监控服务,开发者可利用鹰眼创建多边形、路线、行政区等类型的地理围栏,鹰眼自动监控终端进出围栏行为,并推送报警至鹰眼SDK或开发者服务端。利用该服务,开发者可实现例如:利用行政区围栏监控车辆是否驶出海淀区、利用多边形围栏监控物流车辆是否准时到达站点等功能功能展示
//创建围栏 // 圆心 CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.0478, 116.3134); // 构造将要创建的新的围栏对象 BTKServerCircleFence *fence = [[BTKServerCircleFence alloc] initWithCenter:center radius:50 coordType:BTK_COORDTYPE_BD09LL denoiseAccuracy:50 fenceName:@"server_circle_fence" monitoredObject:@"entityA"]; // 构造请求对象 BTKCreateServerFenceRequest *circleRequest = [[BTKCreateServerFenceRequest alloc] initWithServerCircleFence:fence serviceID:100000 tag:21]; // 发起创建请求 [[BTKFenceAction sharedInstance] createServerFenceWith:circleRequest delegate:self]; //删除围栏 // 构造请求对象 BTKDeleteServerFenceRequest *request = [[BTKDeleteServerFenceRequest alloc] initWithMonitoredObject:@"entityA" fenceIDs:nil serviceID:100000 tag:22]; // 发起删除请求 [[BTKFenceAction sharedInstance] deleteServerFenceWith:request delegate:self]; //实时状态查询 // 构建请求对象 BTKQueryServerFenceStatusRequest *request = [[BTKQueryServerFenceStatusRequest alloc] initWithMonitoredObject:@"entityA" fenceIDs:nil ServiceID:100000 tag:25]; // 发起查询请求 [[BTKFenceAction sharedInstance] queryServerFenceStatusWith:request delegate:self];
http://mapopen-pub-iossdk.cdn.bcebos.com/yingyan/video/ServerGeofence.mp4
- 轨迹分析(停留点)
简介鹰眼为开发者提供停留点、超速(基于道路限速)、急变速等运动行为分析。利用该服务,开发者可分析一段轨迹中有哪些停留点、在何处出现了超速等危险驾驶行为功能展示
//停留点分析 NSUInteger endTime = [[NSDate date] timeIntervalSince1970]; // 构造请求对象 BTKStayPointAnalysisRequest *request = [[BTKStayPointAnalysisRequest alloc] initWithEntityName:@"entityA" startTime:endTime - 12 * 60 * 60 endTime:endTime stayTime:100 stayRadius:20 processOption:nil outputCoordType:BTK_COORDTYPE_BD09LL serviceID:100000 tag:222]; // 发起请求 [[BTKAnalysisAction sharedInstance] analyzeStayPointWith:request delegate:self]; /** 停留点分析的回调方法 @param response 停留点分析的结果 */ -(void)onAnalyzeStayPoint:(NSData *)response { } //驾车行为分析 NSUInteger endTime = [[NSDate date] timeIntervalSince1970]; // 构造请求对象 BTKDrivingBehaviourAnalysisRequest *request = [[BTKDrivingBehaviourAnalysisRequest alloc] initWithEntityName:@"zhubei" startTime:endTime - 12 * 60 * 60 endTime:endTime speedingThreshold:50 processOption:nil outputCoordType:BTK_COORDTYPE_BD09LL serviceID:103044 tag:223]; // 发起请求 [[BTKAnalysisAction sharedInstance] analyzeDrivingBehaviourWith:request delegate:self]; /** 驾驶行为分析的回调方法 @param response 驾驶行为分析的结果 */ -(void)onAnalyzeDrivingBehaviour:(NSData *)response { }
http://mapopen-pub-iossdk.cdn.bcebos.com/yingyan/video/TrackAnalyze.mp4
鹰眼服务流程

使用须知
百度鹰眼iOS SDK,您需先申请密钥(AK),请先阅读百度地图API使用条款。 百度地图iOS鹰眼SDK是提供给具有一定iOS编程经验和了解面向对象概念的开发者使用。此外,读者还应该对地图的基本知识有一定的了解。您在使用中遇到任何问题,都可以通过反馈平台反馈给我们,之后会有技术支持人员一对一为您处理问题。
开始使用