Files
OrderScheduling/Pods/AMapNavi-NO-IDFA/AMapNaviKit.framework/Headers/MATraceManager.h
DDIsFriend f0e8a1709d initial
2023-08-18 17:28:57 +08:00

105 lines
3.5 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// MATraceManager.h
// MAMapKit
//
// Created by shaobin on 16/9/1.
// Copyright © 2016年 Amap. All rights reserved.
//
#import "MAConfig.h"
#if MA_INCLUDE_TRACE_CORRECT
#import <Foundation/Foundation.h>
#import <AMapFoundationKit/AMapFoundationKit.h>
#import "MATraceLocation.h"
@class MATraceManager;
///处理中回调, index: 批次编号0 based
typedef void(^MAProcessingCallback)(int index, NSArray<MATracePoint *> *points);
///成功回调distance距离单位米
typedef void(^MAFinishCallback)(NSArray<MATracePoint *> *points, double distance);
///失败回调
typedef void(^MAFailedCallback)(int errorCode, NSString *errorDesc);
///定位回调, locations: 原始定位点; tracePoints: 纠偏后的点如果纠偏失败返回nil; distance:距离; error: 纠偏失败时的错误信息
typedef void(^MATraceLocationCallback)(NSArray<CLLocation *> *locations, NSArray<MATracePoint *> *tracePoints, double distance, NSError *error);
/**
* @brief 轨迹定位的代理协议since v6.2.0
*/
@protocol MATraceDelegate <NSObject>
@required
/**
* @brief 轨迹定位纠偏的回调方法since v6.2.0
* @param manager 轨迹定位管理对象
* @param locations 已经完成纠偏的原始定位数据
* @param tracePoints 已经完成纠偏处理后的轨迹点
* @param distance 距离,单位米
* @param error 如果成功的话为nil否则为失败原因
*/
- (void)traceManager:(MATraceManager *)manager
didTrace:(NSArray<CLLocation *> *)locations
correct:(NSArray<MATracePoint *> *)tracePoints
distance:(double)distance
withError:(NSError *)error;
@optional
/**
* @brief 当plist配置NSLocationAlwaysUsageDescription或者NSLocationAlwaysAndWhenInUseUsageDescription并且[CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined会调用代理的此方法。
此方法实现调用后台权限API即可 该回调必须实现 [locationManager requestAlwaysAuthorization] ; since 6.8.1
* @param locationManager 地图的CLLocationManager。
*/
- (void)mapViewRequireLocationAuth:(CLLocationManager *)locationManager;
@end
///轨迹纠偏管理类
@interface MATraceManager : NSObject
/**
* @brief 单例方法
*/
+ (instancetype)sharedInstance;
/**
* @brief 获取纠偏后的经纬度点集
* @param locations 待纠偏处理的点集, 顺序即为传入的顺序
* @param type loctions经纬度坐标的类型, 如果已经是高德坐标系,传 -1
* @param processingCallback 如果一次传入点过多,内部会分批处理。每处理完一批就调用此回调
* @param finishCallback 全部处理完毕调用此回调
* @param failedCallback 失败调用此回调
* @return 返回一个NSOperation对象可调用cancel取消
*/
- (NSOperation *)queryProcessedTraceWith:(NSArray<MATraceLocation *>*)locations
type:(AMapCoordinateType)type
processingCallback:(MAProcessingCallback)processingCallback
finishCallback:(MAFinishCallback)finishCallback
failedCallback:(MAFailedCallback)failedCallback;
/**
* @brief 轨迹定位的代理回调对象配合start和stop方法使用since v6.2.0
*/
@property (nonatomic, weak) id<MATraceDelegate> delegate;
/**
* @brief 开始轨迹定位, 内部使用系统CLLocationManagerdistanceFilterdesiredAccuracy均为系统默认值since v6.2.0
*/
- (void)start;
/**
* @brief 停止轨迹定位since v6.2.0
*/
- (void)stop;
@end
#endif