TencentLBSLocationManager Class Reference

Inherits from NSObject
Declared in TencentLBSLocationManager.h

Overview

腾讯定位服务管理类,提供定位、逆地理编码、朝向、DR 惯导等核心功能。 使用前需设置 apiKey 并确保用户同意隐私协议。

  apiKey

API Key,在使用定位 SDK 服务之前需要先绑定 key

@property (nonatomic, copy) NSString *apiKey

Declared In

TencentLBSLocationManager.h

  accuracyAuthorization

当前位置管理器定位精度的授权状态

@property (nonatomic, readonly) TencentLBSAccuracyAuthorization accuracyAuthorization

Declared In

TencentLBSLocationManager.h

  authorizationStatus

当前位置管理器定位权限的授权状态

@property (nonatomic, readonly) CLAuthorizationStatus authorizationStatus

Declared In

TencentLBSLocationManager.h

  delegate

实现了 TencentLBSLocationManagerDelegate 协议的代理对象

@property (nonatomic, weak) id<TencentLBSLocationManagerDelegate> delegate

Declared In

TencentLBSLocationManager.h

  distanceFilter

定位的最小更新距离,默认为 kCLDistanceFilterNone

@property (nonatomic, assign) CLLocationDistance distanceFilter

Declared In

TencentLBSLocationManager.h

  desiredAccuracy

定位精度,默认为 kCLLocationAccuracyBest

@property (nonatomic, assign) CLLocationAccuracy desiredAccuracy

Declared In

TencentLBSLocationManager.h

  pausesLocationUpdatesAutomatically

是否允许系统自动暂停定位,默认为 YES

@property (nonatomic, assign) BOOL pausesLocationUpdatesAutomatically

Declared In

TencentLBSLocationManager.h

  allowsBackgroundLocationUpdates

是否允许后台定位,默认为 NO

@property (nonatomic, assign) BOOL allowsBackgroundLocationUpdates

Discussion

是否允许后台定位,默认为 NO

Warning: iOS 9.0 以上需要设置该选项并在 info.plist 的 Background Modes 中勾选 Location updates 才可使用后台定位权限。设置为 YES 时必须保证 Background Modes 中的 Location updates 处于选中状态,否则会抛出异常

Declared In

TencentLBSLocationManager.h

  activityType

用户的活动类型,默认值为 CLActivityTypeOther

@property (nonatomic, assign) CLActivityType activityType

Declared In

TencentLBSLocationManager.h

  headingFilter

朝向改变的最小角度阈值,只有当设备方向的改变值超过该属性值时才触发代理回调

@property (nonatomic, assign) CLLocationDegrees headingFilter

Declared In

TencentLBSLocationManager.h

  headingOrientation

设备当前的朝向

@property (nonatomic, assign) CLDeviceOrientation headingOrientation

Declared In

TencentLBSLocationManager.h

  requestLevel

连续定位的逆地理信息请求级别,默认为 TencentLBSRequestLevelGeo

@property (nonatomic, assign) TencentLBSRequestLevel requestLevel

Declared In

TencentLBSLocationManager.h

  coordinateType

返回的 TencentLBSLocation 的 location 字段的坐标类型,默认为 TencentLBSLocationCoordinateTypeGCJ02

@property (nonatomic, assign) TencentLBSLocationCoordinateType coordinateType

Discussion

返回的 TencentLBSLocation 的 location 字段的坐标类型,默认为 TencentLBSLocationCoordinateTypeGCJ02

Warning: 在一次定位过程中只允许设置一次,不允许重复设置

Declared In

TencentLBSLocationManager.h

  poiUpdateInterval

POI 的更新间隔,默认是 10 秒

@property (nonatomic, assign) NSInteger poiUpdateInterval

Declared In

TencentLBSLocationManager.h

  enableAntiMockLocation

是否允许开启反作弊检查

@property (nonatomic, assign) BOOL enableAntiMockLocation

Declared In

TencentLBSLocationManager.h

  locationCallbackInterval

连续定位时的回调间隔,默认为 0,单位为毫秒。连续定位且间隔大于 0 时才有效

@property (nonatomic, assign) uint64_t locationCallbackInterval

Declared In

TencentLBSLocationManager.h

+ getLBSSDKVersion

获取定位 SDK 的版本号

+ (NSString *)getLBSSDKVersion

Declared In

TencentLBSLocationManager.h

+ getLBSSDKbuild

获取定位 SDK 的构建日期

+ (NSString *)getLBSSDKbuild

Declared In

TencentLBSLocationManager.h

– setDeviceId:

设置设备 ID 给定位 SDK

- (void)setDeviceId:(NSString *)deviceid

Parameters

deviceid

设备唯一标识

Discussion

设置设备 ID 给定位 SDK

Declared In

TencentLBSLocationManager.h

– setDataWithValue:forKey:

向 SDK 内部设置数据,以满足定制的需求

- (void)setDataWithValue:(NSString *)value forKey:(NSString *)key

Parameters

value

设置的值

key

设置的键

Discussion

向 SDK 内部设置数据,以满足定制的需求

Declared In

TencentLBSLocationManager.h

+ setUserAgreePrivacy:

设置用户是否同意隐私协议政策

+ (void)setUserAgreePrivacy:(BOOL)isAgree

Parameters

isAgree

是否同意隐私政策

Discussion

设置用户是否同意隐私协议政策

Warning: 调用其他接口前必须首先调用此接口,传入 YES 后才能正常使用定位功能,否则 TencentLBSLocationManager 初始化不成功,返回 nil

Declared In

TencentLBSLocationManager.h

+ getUserAgreePrivacy

获取用户是否同意隐私政策协议

+ (BOOL)getUserAgreePrivacy

Return Value

是否同意隐私政策

Discussion

获取用户是否同意隐私政策协议

Declared In

TencentLBSLocationManager.h

– requestWhenInUseAuthorization

请求使用期间定位权限

- (void)requestWhenInUseAuthorization

Declared In

TencentLBSLocationManager.h

– requestAlwaysAuthorization

请求始终允许定位权限

- (void)requestAlwaysAuthorization

Declared In

TencentLBSLocationManager.h

– requestTemporaryFullAccuracyAuthorizationWithPurposeKey:

当前属于模糊定位状态时,请求暂时的完全定位精度权限

- (void)requestTemporaryFullAccuracyAuthorizationWithPurposeKey:(NSString *)purposeKey

Parameters

purposeKey

需要在 info.plist 中配置 NSLocationTemporaryUsageDescriptionDictionary 对应的 key 值和申请权限的描述理由

Discussion

当前属于模糊定位状态时,请求暂时的完全定位精度权限

Declared In

TencentLBSLocationManager.h

– requestTemporaryFullAccuracyAuthorizationWithPurposeKey:completion:

当前属于模糊定位状态时,请求暂时的完全定位精度权限

- (void)requestTemporaryFullAccuracyAuthorizationWithPurposeKey:(NSString *)purposeKey completion:(void ( ^ ) ( NSError *))completion

Parameters

purposeKey

需要在 info.plist 中配置 NSLocationTemporaryUsageDescriptionDictionary 对应的 key 值和申请权限的描述理由

completion

用户选择后的回调,如果用户授予权限则参数为 nil,否则为 PurposeKey 对应的描述信息

Discussion

当前属于模糊定位状态时,请求暂时的完全定位精度权限

Declared In

TencentLBSLocationManager.h

+ accuracyAuthorization

获取当前的定位精度授权状态

+ (TencentLBSAccuracyAuthorization)accuracyAuthorization

Return Value

当前的 TencentLBSAccuracyAuthorization 状态

Discussion

获取当前的定位精度授权状态

Declared In

TencentLBSLocationManager.h

– requestLocationWithCompletionBlock:

单次定位,使用默认配置

- (BOOL)requestLocationWithCompletionBlock:(TencentLBSLocatingCompletionBlock)completionBlock

Parameters

completionBlock

单次定位完成后的回调 Block

Return Value

是否成功发起定位请求

Discussion

单次定位,使用默认配置

Warning: 默认 level 为 TencentLBSRequestLevelPoi,timeout 为 10 秒。不能连续调用该接口,需在上一次返回之后才能再次发起调用

Declared In

TencentLBSLocationManager.h

– requestLocationWithRequestLevel:locationTimeout:completionBlock:

单次定位,可自定义请求级别和超时时间

- (BOOL)requestLocationWithRequestLevel:(TencentLBSRequestLevel)level locationTimeout:(NSTimeInterval)timeout completionBlock:(TencentLBSLocatingCompletionBlock)completionBlock

Parameters

level

定位请求级别,可根据此参数获取对应的 POI 信息

timeout

获取 POI 的超时时间

completionBlock

单次定位完成后的回调 Block

Return Value

是否成功发起定位请求

Discussion

单次定位,可自定义请求级别和超时时间

Warning: 不能连续调用该接口,需在上一次返回之后才能再次发起调用。可通过 cancelRequestLocation 取消请求

Declared In

TencentLBSLocationManager.h

– cancelRequestLocation

取消单次定位

- (void)cancelRequestLocation

Declared In

TencentLBSLocationManager.h

– startUpdatingLocation

开始连续定位

- (void)startUpdatingLocation

Declared In

TencentLBSLocationManager.h

– stopUpdatingLocation

停止连续定位

- (void)stopUpdatingLocation

Declared In

TencentLBSLocationManager.h

– startUpdatingHeading

开始更新定位朝向

- (void)startUpdatingHeading

Declared In

TencentLBSLocationManager.h

– stopUpdatingHeading

停止更新定位朝向

- (void)stopUpdatingHeading

Declared In

TencentLBSLocationManager.h

– dismissHeadingCalibrationDisplay

停止展示定位朝向校准提示

- (void)dismissHeadingCalibrationDisplay

Declared In

TencentLBSLocationManager.h

– isSupport

是否支持 DR 引擎

- (BOOL)isSupport

Return Value

支持返回 YES,不支持返回 NO

Discussion

是否支持 DR 引擎

Declared In

TencentLBSLocationManager.h

– startDrEngine:

启动 DR 引擎,引擎会自动获取传感器和 GPS 数据并进行位置计算

- (TencentLBSDRStartCode)startDrEngine:(TencentLBSDRStartMotionType)type

Parameters

type

运动类型,参考 TencentLBSDRStartMotionType

Return Value

启动返回码,参考 TencentLBSDRStartCode

Discussion

启动 DR 引擎,引擎会自动获取传感器和 GPS 数据并进行位置计算

Warning: 请确保调用之前已获取位置权限(使用期间或者始终允许)。启动后 DR 引擎会主动开启 CLLocationManager 的 startUpdatingLocation

Declared In

TencentLBSLocationManager.h

– terminateDrEngine

停止 DR 引擎

- (void)terminateDrEngine

Discussion

停止 DR 引擎

Warning: 内部有极短时间延迟,若在此期间调用 startDrEngine: 可能导致启动不成功

Declared In

TencentLBSLocationManager.h

– getPosition

主动获取 DR 实时融合位置

- (TencentLBSLocation *)getPosition

Return Value

DR 融合后的定位结果,调用 startDrEngine: 成功后才可能有值

Discussion

主动获取 DR 实时融合位置

Declared In

TencentLBSLocationManager.h