TencentLocationSDK_iOS_v3.1
TencentLBSLocationManager.h
1 //
2 // TencentLBSLocationManager.h
3 // TencentLBS
4 //
5 // Created by mirantslu on 16/4/19.
6 // Copyright © 2016年 Tencent. All rights reserved.
7 //
8 
9 #import <Foundation/Foundation.h>
10 #import <CoreLocation/CoreLocation.h>
11 #import "TencentLBSLocation.h"
12 
13 NS_ASSUME_NONNULL_BEGIN
14 
15 typedef NS_ENUM(NSUInteger, TencentLBSRequestLevel) {
16  TencentLBSRequestLevelGeo = 0,
17  TencentLBSRequestLevelName = 1,
18  TencentLBSRequestLevelAdminName = 3,
19  TencentLBSRequestLevelPoi = 4,
20 };
21 
22 typedef NS_ENUM(NSUInteger, TencentLBSLocationCoordinateType) {
23  TencentLBSLocationCoordinateTypeGCJ02 = 0,
24  TencentLBSLocationCoordinateTypeWGS84 = 1,
25 };
26 
27 typedef NS_ENUM(NSUInteger, TencentLBSLocationError) {
28  TencentLBSLocationErrorUnknown = 0,
29  TencentLBSLocationErrorDenied = 1,
30  TencentLBSLocationErrorNetwork = 2,
31  TencentLBSLocationErrorHeadingFailure = 3,
32  TencentLBSLocationErrorOther = 4,
33 };
34 
41 typedef void (^TencentLBSLocatingCompletionBlock)(TencentLBSLocation * _Nullable location, NSError * _Nullable error);
42 
43 @protocol TencentLBSLocationManagerDelegate;
44 
45 @interface TencentLBSLocationManager : NSObject
46 
50 @property (nonatomic, copy) NSString* apiKey;
51 
55 @property (nonatomic, weak) id<TencentLBSLocationManagerDelegate> delegate;
56 
60 @property (nonatomic, assign) CLLocationDistance distanceFilter;
61 
65 @property (nonatomic, assign) CLLocationAccuracy desiredAccuracy;
66 
70 @property (nonatomic, assign) BOOL pausesLocationUpdatesAutomatically;
71 
78 @property (nonatomic, assign) BOOL allowsBackgroundLocationUpdates;
79 
85 @property (nonatomic, assign) CLActivityType activityType;
86 
91 @property(nonatomic, assign) CLLocationDegrees headingFilter;
92 
96 @property(nonatomic, assign) CLDeviceOrientation headingOrientation;
97 
101 @property (nonatomic, assign) TencentLBSRequestLevel requestLevel;
102 
108 @property (nonatomic, assign) TencentLBSLocationCoordinateType coordinateType;
109 
113 @property(nonatomic, assign) NSInteger poiUpdateInterval;
114 
115 #pragma mark -
116 
117 - (void)requestWhenInUseAuthorization;
118 
119 - (void)requestAlwaysAuthorization;
120 
121 #pragma mark -
122 
130 - (BOOL)requestLocationWithCompletionBlock:(TencentLBSLocatingCompletionBlock)completionBlock;
131 
141 - (BOOL)requestLocationWithRequestLevel:(TencentLBSRequestLevel)level
142  locationTimeout:(NSTimeInterval)timeout
143  completionBlock:(TencentLBSLocatingCompletionBlock)completionBlock;
144 
148 - (void)cancelRequestLocation;
149 
153 - (void)startUpdatingLocation;
154 
158 - (void)stopUpdatingLocation;
159 
163 - (void)startUpdatingHeading;
164 
168 - (void)stopUpdatingHeading;
169 
174 
175 // 测试使用
176 #if TENCENTLBS_DEBUG
177 + (void)upLoadData;
178 + (NSData *)getLocationLog;
179 + (void)newLocationLog;
180 #endif
181 
182 @end
183 
184 
185 #pragma mark - TencentLBSLocationManagerDelegate
186 
191 @protocol TencentLBSLocationManagerDelegate <NSObject>
192 @optional
193 
200 - (void)tencentLBSLocationManager:(TencentLBSLocationManager *)manager
201  didFailWithError:(NSError *)error;
202 
209 - (void)tencentLBSLocationManager:(TencentLBSLocationManager *)manager
210  didUpdateLocation:(TencentLBSLocation *)location;
211 
218 - (void)tencentLBSLocationManager:(TencentLBSLocationManager *)manager
219  didChangeAuthorizationStatus:(CLAuthorizationStatus)status;
220 
227 - (void)tencentLBSLocationManager:(TencentLBSLocationManager *)manager
228  didUpdateHeading:(CLHeading *)newHeading;
229 
235 - (BOOL)tencentLBSLocationManagerShouldDisplayHeadingCalibration:(TencentLBSLocationManager *)manager;
236 
237 @end
238 
239 NS_ASSUME_NONNULL_END
CLLocationDegrees headingFilter
Definition: TencentLBSLocationManager.h:91
CLDeviceOrientation headingOrientation
Definition: TencentLBSLocationManager.h:96
id< TencentLBSLocationManagerDelegate > delegate
Definition: TencentLBSLocationManager.h:55
CLLocationDistance distanceFilter
Definition: TencentLBSLocationManager.h:60
Definition: TencentLBSLocation.h:28
CLLocationAccuracy desiredAccuracy
Definition: TencentLBSLocationManager.h:65
NSInteger poiUpdateInterval
Definition: TencentLBSLocationManager.h:113
TencentLBSRequestLevel requestLevel
Definition: TencentLBSLocationManager.h:101
CLActivityType activityType
Definition: TencentLBSLocationManager.h:85
TencentLBSLocationCoordinateType coordinateType
Definition: TencentLBSLocationManager.h:108
BOOL pausesLocationUpdatesAutomatically
Definition: TencentLBSLocationManager.h:70
Definition: TencentLBSLocationManager.h:45
NSString * apiKey
Definition: TencentLBSLocationManager.h:50
BOOL allowsBackgroundLocationUpdates
Definition: TencentLBSLocationManager.h:78