高德地图SDK(定位)  V2.12.1
AMapLocationManager.h
Go to the documentation of this file.
1 //
2 // AMapLocationManager.h
3 // AMapLocationKit
4 //
5 // Created by AutoNavi on 15/10/22.
6 // Copyright © 2015年 Amap. All rights reserved.
7 //
8 
9 #import <UIKit/UIKit.h>
10 #import <AMapFoundationKit/AMapServices.h>
13 
20 typedef void (^AMapLocatingCompletionBlock)(CLLocation *location, AMapLocationReGeocode *regeocode, NSError *error);
21 
23 
24 #pragma mark - AMapLocationManager
25 
27 @interface AMapLocationManager : NSObject
28 
30 @property (nonatomic, weak) id<AMapLocationManagerDelegate> delegate;
31 
33 @property(nonatomic, assign) CLLocationDistance distanceFilter;
34 
38 @property(nonatomic, assign) CLLocationAccuracy desiredAccuracy;
39 
41 @property(nonatomic, assign) BOOL pausesLocationUpdatesAutomatically;
42 
44 @property(nonatomic, assign) BOOL allowsBackgroundLocationUpdates;
45 
47 @property(nonatomic, assign) NSInteger locationTimeout;
48 
50 @property(nonatomic, assign) NSInteger reGeocodeTimeout;
51 
53 @property (nonatomic, assign) BOOL locatingWithReGeocode;
54 
55 // 注意:在使用导航功能前,请通过 [AMapServices sharedServices].regionLanguageType 来设置语言类型 (since 11.2.000)
57 //@property (nonatomic, assign) AMapRegionLanguageType reGeocodeLanguage;
58 
60 @property (nonatomic, readonly, copy) NSSet *monitoredRegions;
61 
63 @property (nonatomic, assign) BOOL detectRiskOfFakeLocation;
64 
65 
66 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 140000
67 
80 @property (nonatomic, assign) AMapLocationAccuracyMode locationAccuracyMode API_AVAILABLE(ios(14.0));
81 
86 @property (nonatomic, readonly) CLAccuracyAuthorization currentAuthorization API_AVAILABLE(ios(14.0));
87 
88 #endif
89 
94 + (BOOL)headingAvailable;
95 
99 - (void)startUpdatingHeading;
100 
104 - (void)stopUpdatingHeading;
105 
110 
117 - (BOOL)requestLocationWithReGeocode:(BOOL)withReGeocode completionBlock:(AMapLocatingCompletionBlock)completionBlock;
118 
122 - (void)startUpdatingLocation;
123 
127 - (void)stopUpdatingLocation;
128 
133 - (void)startMonitoringForRegion:(AMapLocationRegion *)region __attribute__((deprecated("请使用AMapGeoFenceManager")));
134 
139 - (void)stopMonitoringForRegion:(AMapLocationRegion *)region __attribute__((deprecated("请使用AMapGeoFenceManager")));
140 
145 - (void)requestStateForRegion:(AMapLocationRegion *)region __attribute__((deprecated("请使用AMapGeoFenceManager")));
146 
147 #pragma mark - Privacy 隐私合规
153 + (void)updatePrivacyShow:(AMapPrivacyShowStatus)showStatus privacyInfo:(AMapPrivacyInfoStatus)containStatus;
158 + (void)updatePrivacyAgree:(AMapPrivacyAgreeStatus)agreeStatus;
159 
160 @end
161 
162 #pragma mark - AMapLocationManagerDelegate
163 
165 @protocol AMapLocationManagerDelegate <NSObject>
166 
167 @optional
168 
169 #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 140000
170 
183 - (void)amapLocationManager:(AMapLocationManager *)manager doRequireTemporaryFullAccuracyAuth:(CLLocationManager*)locationManager completion:(void(^)(NSError *error))completion;
184 
185 #endif
186 
194 - (void)amapLocationManager:(AMapLocationManager *)manager doRequireLocationAuth:(CLLocationManager*)locationManager;
195 
201 - (void)amapLocationManager:(AMapLocationManager *)manager didFailWithError:(NSError *)error;
202 
208 - (void)amapLocationManager:(AMapLocationManager *)manager didUpdateLocation:(CLLocation *)location;
209 
216 - (void)amapLocationManager:(AMapLocationManager *)manager didUpdateLocation:(CLLocation *)location reGeocode:(AMapLocationReGeocode *)reGeocode;
217 
223 - (void)amapLocationManager:(AMapLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status;
224 
230 - (void)amapLocationManager:(AMapLocationManager *)manager locationManagerDidChangeAuthorization:(CLLocationManager*)locationManager;
231 
237 - (BOOL)amapLocationManagerShouldDisplayHeadingCalibration:(AMapLocationManager *)manager;
238 
244 - (void)amapLocationManager:(AMapLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading;
245 
251 - (void)amapLocationManager:(AMapLocationManager *)manager didStartMonitoringForRegion:(AMapLocationRegion *)region __attribute__((deprecated("请使用AMapGeoFenceManager")));
252 
258 - (void)amapLocationManager:(AMapLocationManager *)manager didEnterRegion:(AMapLocationRegion *)region __attribute__((deprecated("请使用AMapGeoFenceManager")));
259 
265 - (void)amapLocationManager:(AMapLocationManager *)manager didExitRegion:(AMapLocationRegion *)region __attribute__((deprecated("请使用AMapGeoFenceManager")));
266 
273 - (void)amapLocationManager:(AMapLocationManager *)manager didDetermineState:(AMapLocationRegionState)state forRegion:(AMapLocationRegion *)region __attribute__((deprecated("请使用AMapGeoFenceManager")));
274 
281 - (void)amapLocationManager:(AMapLocationManager *)manager monitoringDidFailForRegion:(AMapLocationRegion *)region withError:(NSError *)error __attribute__((deprecated("请使用AMapGeoFenceManager")));
282 
283 @end
AMapLocationRegionState
AMapLocation Region State.
Definition: AMapLocationCommonObj.h:36
AMapLocationAccuracyMode
AMapLocation Accuracy Mode.
Definition: AMapLocationCommonObj.h:43
void(^ AMapLocatingCompletionBlock)(CLLocation *location, AMapLocationReGeocode *regeocode, NSError *error)
AMapLocatingCompletionBlock 单次定位返回Block.
Definition: AMapLocationManager.h:20
AMapLocationManager类。初始化之前请设置 AMapServices 中的apikey(例如:[AMapServices sharedServices]....
Definition: AMapLocationManager.h:28
void startUpdatingLocation()
开始连续定位。调用此方法会cancel掉所有的单次定位请求。
BOOL allowsBackgroundLocationUpdates
是否允许后台定位。默认为NO。只在iOS 9.0及之后起作用。设置为YES的时候必须保证 Background Modes 中的 Location updates 处于选中状态,否则会抛出异常。由于iO...
Definition: AMapLocationManager.h:44
id< AMapLocationManagerDelegate > delegate
实现了 AMapLocationManagerDelegate 协议的类指针。
Definition: AMapLocationManager.h:30
BOOL locatingWithReGeocode
连续定位是否返回逆地理信息,默认NO。
Definition: AMapLocationManager.h:53
void stopUpdatingHeading()
停止获取设备朝向
CLLocationAccuracy desiredAccuracy
Definition: AMapLocationManager.h:38
NSSet * monitoredRegions
逆地址语言类型,默认是AMapRegionLanguageTypeZhHans
Definition: AMapLocationManager.h:60
BOOL pausesLocationUpdatesAutomatically
指定定位是否会被系统自动暂停。默认为NO。
Definition: AMapLocationManager.h:41
void stopUpdatingLocation()
停止连续定位。调用此方法会cancel掉所有的单次定位请求,可以用来取消单次定位。
CLLocationDistance distanceFilter
设定定位的最小更新距离。单位米,默认为 kCLDistanceFilterNone,表示只要检测到设备位置发生变化就会更新位置信息。
Definition: AMapLocationManager.h:33
void dismissHeadingCalibrationDisplay()
停止设备朝向校准显示
AMapLocationAccuracyMode locationAccuracyMode(ios(14.0))
设置定位数据回调精度模式,默认为AMapLocationAccuracyFullAndReduce。 注意:如果定位时未获得定位权限,则首先会调用申请定位权限API,实际定位精度权限取决于用户的权限设置...
BOOL headingAvailable()
设备是否支持方向识别
NSInteger locationTimeout
指定单次定位超时时间,默认为10s。最小值是2s。注意单次定位请求前设置。注意: 单次定位超时时间从确定了定位权限(非kCLAuthorizationStatusNotDetermined状态)后开始计...
Definition: AMapLocationManager.h:47
NSInteger reGeocodeTimeout
指定单次定位逆地理超时时间,默认为5s。最小值是2s。注意单次定位请求前设置。
Definition: AMapLocationManager.h:50
CLAccuracyAuthorization currentAuthorization(ios(14.0))
获取当前定位精度权限。
BOOL detectRiskOfFakeLocation
检测是否存在虚拟定位风险,默认为NO,不检测。 注意:设置为YES时,单次定位通过 AMapLocatingCompletionBlock 的error给出虚拟定位风险提示;连续定位通过 amapLo...
Definition: AMapLocationManager.h:63
void startUpdatingHeading()
开始获取设备朝向,如果设备支持方向识别,则会通过代理回调方法
逆地理信息
Definition: AMapLocationCommonObj.h:50
AMapLocationRegion类,该类提供范围类的基本信息,并无具体实现,不要直接使用。
Definition: AMapLocationRegionObj.h:17
AMapLocationManagerDelegate 协议定义了发生错误时的错误回调方法,连续定位的回调方法等。
Definition: AMapLocationManager.h:165
© 2017 高德信息技术有限公司 版权所有,保留所有权利。