BMKLocationService.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. //
  2. // BMKLocationService.h
  3. // LocationComponent
  4. //
  5. // Created by Baidu on 3/28/14.
  6. // Copyright (c) 2014 baidu. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <BaiduMapAPI_Base/BMKUserLocation.h>
  10. @class CLLocation;
  11. /// 定位服务Delegate,调用startUserLocationService定位成功后,用此Delegate来获取定位数据
  12. @protocol BMKLocationServiceDelegate <NSObject>
  13. @optional
  14. /**
  15. *在将要启动定位时,会调用此函数
  16. */
  17. - (void)willStartLocatingUser;
  18. /**
  19. *在停止定位后,会调用此函数
  20. */
  21. - (void)didStopLocatingUser;
  22. /**
  23. *用户方向更新后,会调用此函数
  24. *@param userLocation 新的用户位置
  25. */
  26. - (void)didUpdateUserHeading:(BMKUserLocation *)userLocation;
  27. /**
  28. *用户位置更新后,会调用此函数
  29. *@param userLocation 新的用户位置
  30. */
  31. - (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation;
  32. /**
  33. *定位失败后,会调用此函数
  34. *@param error 错误号
  35. */
  36. - (void)didFailToLocateUserWithError:(NSError *)error;
  37. @end
  38. @interface BMKLocationService : NSObject
  39. /// 当前用户位置,返回坐标为百度坐标
  40. @property (nonatomic, readonly) BMKUserLocation *userLocation;
  41. /// 定位服务Delegate,调用startUserLocationService定位成功后,用此Delegate来获取定位数据
  42. @property (nonatomic, weak) id<BMKLocationServiceDelegate> delegate;
  43. /**
  44. *打开定位服务
  45. *需要在info.plist文件中添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):
  46. *NSLocationWhenInUseUsageDescription 允许在前台使用时获取GPS的描述
  47. *NSLocationAlwaysUsageDescription 允许永远可获取GPS的描述
  48. */
  49. -(void)startUserLocationService;
  50. /**
  51. *关闭定位服务
  52. */
  53. -(void)stopUserLocationService;
  54. #pragma mark - 定位参数,具体含义可参考CLLocationManager相关属性的注释
  55. /// 设定定位的最小更新距离。默认为kCLDistanceFilterNone
  56. @property(nonatomic, assign) CLLocationDistance distanceFilter;
  57. /// 设定定位精度。默认为kCLLocationAccuracyBest。
  58. @property(nonatomic, assign) CLLocationAccuracy desiredAccuracy;
  59. /// 设定最小更新角度。默认为1度,设定为kCLHeadingFilterNone会提示任何角度改变。
  60. @property(nonatomic, assign) CLLocationDegrees headingFilter;
  61. /// 指定定位是否会被系统自动暂停。默认为YES。只在iOS 6.0之后起作用。
  62. @property(nonatomic, assign) BOOL pausesLocationUpdatesAutomatically;
  63. ///指定定位:是否允许后台定位更新。默认为NO。只在iOS 9.0之后起作用。设为YES时,Info.plist中 UIBackgroundModes 必须包含 "location"
  64. @property(nonatomic, assign) BOOL allowsBackgroundLocationUpdates;
  65. #pragma mark - 废弃接口
  66. /**
  67. * 2.9.0起废弃(使用distanceFilter属性替换),空实现
  68. *
  69. *在打开定位服务前设置
  70. *指定定位的最小更新距离(米),默认:kCLDistanceFilterNone
  71. */
  72. + (void)setLocationDistanceFilter:(CLLocationDistance) distanceFilter __deprecated_msg("废弃方法(空实现),使用distanceFilter属性替换");
  73. /**
  74. * 2.9.0起废弃(使用distanceFilter属性替换),空实现
  75. *
  76. *获取当前 定位的最小更新距离(米)
  77. */
  78. + (CLLocationDistance)getCurrentLocationDistanceFilter __deprecated_msg("废弃方法(空实现),使用distanceFilter属性替换");
  79. /**
  80. * 2.9.0起废弃(使用desiredAccuracy属性替换),空实现
  81. *
  82. *在打开定位服务前设置
  83. *设置定位精确度,默认:kCLLocationAccuracyBest
  84. */
  85. + (void)setLocationDesiredAccuracy:(CLLocationAccuracy) desiredAccuracy __deprecated_msg("废弃方法(空实现),使用desiredAccuracy属性替换");
  86. /**
  87. * 2.9.0起废弃(使用desiredAccuracy属性替换),空实现
  88. *
  89. *获取当前 定位精确度
  90. */
  91. + (CLLocationAccuracy)getCurrentLocationDesiredAccuracy __deprecated_msg("废弃方法(空实现),使用desiredAccuracy属性替换");
  92. @end