要想实现持续性定位,需要对电量做优化
- 距离筛选器(比如这里传10 ,当位置变化超过10M变化时,代理才会调用)
self.mgr.distanceFilter = 10;
-
设置精准度 self.mgr.desiredAccuracy = kCLLocationAccuracyKilometer;
#import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewController () @property (nonatomic, strong) CLLocationManager *mgr; @end @implementation ViewController
- (void)viewDidLoad { [super viewDidLoad]; //1.创建CLLocationManager self.mgr = [CLLocationManager new]; //2.请求授权 从iOS8开始必须在应用中请求授权 if ([self.mgr respondsToSelector:@selector(requestWhenInUseAuthorization)]) { //当用户使用的时候授权 [self.mgr requestWhenInUseAuthorization]; } //3.设置代理 self.mgr.delegate = self; //4.调用开始定位的方法 [self.mgr startUpdatingLocation]; //持续性定位 //5.距离筛选器(比如这里传10 ,当位置变化超过10M变化时,代理才会调用) self.mgr.distanceFilter = 10; //6.设置精准度 //iphone中的定位方式:GPS/wifi/移动基站 //我们可以降低定位的精准度,实现上降低了与卫星之间的计算:以此节省电量 self.mgr.desiredAccuracy = kCLLocationAccuracyKilometer;}#pragma mark - CoreLocationDelegate - //当完成用户位置更新的时候调用
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations { NSLog(@"%@",locations); //结束持续打印 // [self.mgr stopUpdatingLocation]; }
持续定位其实就是多了 5 6 步