#import "ThreeViewController.h"
//引入定位头文件
#import <CoreLocation/CoreLocation.h>
//遵循定位管理器协议
@interface ThreeViewController ()<CLLocationManagerDelegate>
//声明位置管理器 属性
@property (strong, nonatomic)CLLocationManager *locationManager;
@end
@implementation ThreeViewController
- (void)viewDidLoad {
[super viewDidLoad];
//初始化位置管理器
self.locationManager = [[CLLocationManager alloc] init];
//判断是否打开定位服务
if (![CLLocationManager locationServicesEnabled]) {
NSLog(@"定位服务, 尚未打开, 请打开");
}
//如果没有授权定位服务, 则请求用户授权
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) {
/*如果定位服务没有被授权, 则请求用户授权,需要子啊 info.plist 文件中添加如下字段:
NSLocationWhenInUseUsageDescription YES
NSLocationAlwaysUsageDescription YES
如果两个同时添加, 则默认为第一个. 但如果只添加了第二个, 则:
*/
[self.locationManager requestAlwaysAuthorization];
}
//如果被授权
else if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorizedAlways){
//设置代理
self.locationManager.delegate = self;
//定位精度
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
//kCLLocationAccuracyBest; 最精确
//kCLLocationAccuracyNearestTenMeters; 10米误差
//kCLLocationAccuracyHundredMeters; 百米误差
//kCLLocationAccuracyKilometer; 千米误差
//kCLLocationAccuracyThreeKilometers; 三千米误差
//定位频率(几次/米)
CLLocationDistance distance = 10.0;//每隔十米定位一次
self.locationManager.distanceFilter = distance;
//启动定位服务
[self.locationManager startUpdatingLocation];
}
}
@end```
Senior_定位管理器
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。