MATraceManager.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. //
  2. // MATraceManager.h
  3. // MAMapKit
  4. //
  5. // Created by shaobin on 16/9/1.
  6. // Copyright © 2016年 Amap. All rights reserved.
  7. //
  8. #import "MAConfig.h"
  9. #if MA_INCLUDE_TRACE_CORRECT
  10. #import <Foundation/Foundation.h>
  11. #import <AMapFoundationKit/AMapFoundationKit.h>
  12. #import "MATraceLocation.h"
  13. ///处理中回调, index: 批次编号,0 based
  14. typedef void(^MAProcessingCallback)(int index, NSArray<MATracePoint *> *points);
  15. ///成功回调,distance:距离,单位米
  16. typedef void(^MAFinishCallback)(NSArray<MATracePoint *> *points, double distance);
  17. ///失败回调
  18. typedef void(^MAFailedCallback)(int errorCode, NSString *errorDesc);
  19. ///定位回调, locations: 原始定位点; tracePoints: 纠偏后的点,如果纠偏失败返回nil; distance:距离; error: 纠偏失败时的错误信息
  20. typedef void(^MATraceLocationCallback)(NSArray<CLLocation *> *locations, NSArray<MATracePoint *> *tracePoints, double distance, NSError *error);
  21. ///轨迹纠偏管理类
  22. @interface MATraceManager : NSObject
  23. /**
  24. * @brief 单例方法
  25. */
  26. + (instancetype)sharedInstance;
  27. /**
  28. * @brief 获取纠偏后的经纬度点集
  29. * @param locations 待纠偏处理的点集, 顺序即为传入的顺序
  30. * @param type loctions经纬度坐标的类型, 如果已经是高德坐标系,传 -1
  31. * @param processingCallback 如果一次传入点过多,内部会分批处理。每处理完一批就调用此回调
  32. * @param finishCallback 全部处理完毕调用此回调
  33. * @param failedCallback 失败调用此回调
  34. * @return 返回一个NSOperation对象,可调用cancel取消
  35. */
  36. - (NSOperation *)queryProcessedTraceWith:(NSArray<MATraceLocation *>*)locations
  37. type:(AMapCoordinateType)type
  38. processingCallback:(MAProcessingCallback)processingCallback
  39. finishCallback:(MAFinishCallback)finishCallback
  40. failedCallback:(MAFailedCallback)failedCallback;
  41. /**
  42. * @brief 开始轨迹定位, 内部使用系统CLLocationManager,distanceFilter,desiredAccuracy均为系统默认值
  43. * @param locCallback 定位回调, 回调中返回坐标类型为AMapCoordinateTypeGPS
  44. */
  45. - (void)startTraceWith:(MATraceLocationCallback)locCallback;
  46. /**
  47. * @brief 停止轨迹定位
  48. */
  49. - (void)stopTrace;
  50. @end
  51. #endif