码迷,mamicode.com
首页 > 其他好文 > 详细

CoreLocation基本使用

时间:2014-08-29 21:13:58      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   使用   io   strong   ar   art   

#import "CJViewController.h"
#import <CoreLocation/CoreLocation.h>
@interface CJViewController ()<CLLocationManagerDelegate>
@property (nonatomic, strong)CLLocationManager *manager;
@end

@implementation CJViewController
// 因为位置管理器在全局中只需一份,所以只需创建一次,使用懒加载
- (CLLocationManager *)manager
{
    if (!_manager) {
        // 1.创建位置管理器(用于定位用户的位置)
        _manager = [[CLLocationManager alloc] init];// 创建完位置管理器后,系统默认不会自动定位,因为定位比较耗电,它不会自动开始定位,如果要开始用户定位,要调用startUpdatingLocation方法
        // 设置代理,告诉用户位置
        _manager.delegate = self;
    }
    return _manager;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    // 检测定位服务是否可用(可能是程序第一次访问用户位置时,被用户点击了Don‘t Allow导致定位服务不可用)
    if ([CLLocationManager locationServicesEnabled]) { // 如果定位服务能用,开始定位
        [self.manager startUpdatingLocation]; // 通过代理告诉用户的位置
        // 每隔多少米定位一次   kCLDistanceFilterNone,表示用户任何一个移动都会定位一次,如果不想任何一个移动就定位一次,那么就要设定一个值
        self.manager.distanceFilter = kCLDistanceFilterNone;  
        
        // 精准度,越高越耗电
        self.manager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 代表一百米内是准确的
    }else
    {// 不能定位用户的位置
        // 1.告诉用户检查网络状况
        // 2.提醒用户打开定位开关
    }
    [self countDistance];
}

// 计算距离
- (void)countDistance
{
    CLLocation *location1 = [[CLLocation alloc] initWithLatitude:39.5 longitude:136];
    CLLocation *location2 = [[CLLocation alloc] initWithLatitude:40 longitude:136];
    CLLocationDistance distance = [location1 distanceFromLocation:location2];
    NSLog(@"距离:%f", distance);
    
}

#pragma mark - CLLocationManagerDelegate
// 时时监测(定位)用户的位置,调用比较频繁
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    // 数组里面的每一个对象都是CLLocation对象,一个CLLocation就代表一个位置
    CLLocation *loc = [locations firstObject];
    NSLog(@"%d", locations.count);
    
    // 停止更新位置,当用户不使用定位服务时,应当马上停止定位(更新), 因为非常耗电
    // [manager stopUpdatingLocation];
}

@end

 

CoreLocation基本使用

标签:des   style   blog   color   使用   io   strong   ar   art   

原文地址:http://www.cnblogs.com/Fc-ios/p/3945665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!