ios 百度鹰眼查询历史运动轨迹

由于百度鹰眼oc的demo还没有给,自己最近写了一个分享一下
百度鹰眼查询历史轨迹只能查寻24小时之内的,当然如果要查询好多天的可以24小时24小时的差
 [[BTRACEAction shared]getTrackHistory:self serviceId:serviceID entityName:_nameStr startTime:bxStartTime endTime:bxEndTime simpleReturn:1 isProcessed:isProcessed processOption:processOption supplementMode:_param.supplementMode sortType:0 pageSize:5000 pageIndex:1];

serviceId 鹰眼轨迹管理台创建鹰眼服务时分配的service_id
entityName 要查询的实体对象的名称
startTime 起始时间(UNIX时间戳)
endTime 结束时间(UNIX时间戳)
simpleReturn 是否返回精简结果  0代表返回原始结果,1代表返回精简结果,2代表只返回本段轨迹的里程。
isProcesed 是否返回纠偏后轨迹  0为返回原始轨迹,1为返回纠偏后的轨迹。
processOption 轨迹纠偏选项。
supplementMode 里程补偿方式。 //去燥 抽稀 绑路 交通方式 里程补偿方式 
sortType 结果排序方式。0代表返回的轨迹点按loc_time从大到小排序,1代表从小到大排序。
pageSize 返回结果中每页有几条数据。0代表不指定,最大值为5000,默认返回100条。
pageIndex 返回结果的第几页。0代表不指定,默认返回第1页。
HistoryParam.h
/// 交通方式,纠偏选项中的transport_mode选项的枚举
///
/// - driving: 驾车
/// - riding:  骑行
/// - walking: 步行
enum TransportMode: NSInteger {
    driving = 1,
    riding = 2,
    walking = 3,
};

/// 里程补偿方式,纠偏选项中的supplement_mode选项的枚举
///
/// - no_supplement: 不补充
/// - straight:      直线距离补充
/// - driving:       最短驾车路线距离补充
/// - riding:        最短骑行路线距离补充
/// - walking:       最短不行路线距离补充
//enum SupplementMode: NSString {
//case no_supplement,
//case straight,
//case driving,
//case riding,
//case walking,
//};

// 历史轨迹查询页面所设置的参数
@interface HistoryParam : NSObject

@property (nonatomic, assign) int64_t startTime;
@property (nonatomic, assign) int64_t endTime;
@property (nonatomic, assign) BOOL needDenoise; // 去燥
@property (nonatomic, assign) BOOL needVacuate; // 抽稀
@property (nonatomic, assign) BOOL needMapMatch;// 绑路
@property (nonatomic, assign) enum TransportMode transportMode; // 交通方式
@property (nonatomic, copy) NSString *supplementMode;  // 里程补偿方式
@end
-------
点用设置看你想达到什么效果
 _param = [[HistoryParam alloc]init];
    // 默认的数据加工选项是去燥、抽吸、绑路
    _param.needDenoise = YES;
    _param.needVacuate = YES;
    _param.needMapMatch = YES;
    // 默认的交通方式选择设置为驾车
    _param.transportMode = driving;
    // 默认的里程补充方式设置为不补充
    _param.supplementMode = @"no_supplement";
    // 设置开始时间、结束时间
    _param.startTime = self.startTime;
    _param.endTime = self.endTime;
代用鹰眼方法
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            
            long long bxStartTime = transitionStartTime;
            long long bxEndTime = transitionStartTime + [PPXdata oneDayTimeStamp];
            
            [[BTRACEAction shared]getTrackHistory:self serviceId:serviceID entityName:_nameStr startTime:bxStartTime endTime:bxEndTime simpleReturn:1 isProcessed:isProcessed processOption:processOption supplementMode:_param.supplementMode sortType:0 pageSize:5000 pageIndex:1];
            
            //        [[BTRACEAction shared] getTrackHistory:self serviceId:serviceID entityName:_nameStr startTime:_startTime endTime:_endTime simpleReturn:1 isProcessed:0 pageSize:5000 pageIndex:1];
            day = day - 1;
            transitionStartTime = bxEndTime; 
        });
返回结果
/**
 *  历史轨迹查询回调方法
 *  @param data JSON格式的返回内容
 */
- (void)onGetHistoryTrack:(NSData * _Nonnull)data{
    
    //写法一
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    NSLog(@"%@",json);
    
    int status = [json[@"status"] intValue];
    if (status != 0) {
        NSLog(@"查询历史轨迹数据失败");
        return;
    }
    
    NSArray *points = [json[@"points"] copy];
    if (points.count == 0) {
        NSLog(@"points没数据");
        return;
    }
//设置起点终点
//    for (int i = 0; i < points.count; i ++) {
//        NSArray * point = points[i];
//        NSNumber * longitude = point[0];
//        NSNumber * latitude = point[1];
//        CLLocationCoordinate2D clLocationCoordinate2D;
//        clLocationCoordinate2D.latitude = [latitude doubleValue];
//        clLocationCoordinate2D.longitude = [longitude doubleValue];
//        if(i==0)
//        {
//            self.startPoint = [self creatPointWithLocaiton:&clLocationCoordinate2D title:@"起点"];
//        }
//        else if (i==points.count-1)
//        {
//            self.endPoint = [self creatPointWithLocaiton:&clLocationCoordinate2D title:@"终点"];
//        }
//        
//    }
    
    for (NSArray *arr in points) {
        float latitude = [arr[1] floatValue];
        float longitude = [arr[0] floatValue];
        int loctime = [arr[2]intValue];
        if (fabs(latitude - 0) <= PPX_EPSILON && fabs(longitude - 0) <= PPX_EPSILON) {
            continue;
        }
        HistoryPoint *historyPoint = [[HistoryPoint alloc]init];
        historyPoint.latitude = latitude;
        historyPoint.longitude = longitude;
        historyPoint.loctime = loctime;
        [_historyPoints addObject:historyPoint];
    }
//所有历史点
    NSLog(@"%lu",(unsigned long)_historyPoints.count);
    之后你可以划线或者别的之类的
}

你可能感兴趣的:(ios 百度鹰眼查询历史运动轨迹)