IOS定位基本使用

IOS中定位如果不使用第三方的框架,就会使用系统自带的CoreLocation完成定位。CLLocationManager类:该类主要用于定位,获取用户的基本信息,结合MapKit使用就能实现简单的导航功能。
  1. CLLocationManager 使用
    1. 首先实例化一个CLLocationManager对象
      CLLocationManager *manager=[[CLLocationManager alloc] init];
      1. manager.distanceFilter = 100;//配置多少米跟新一次
      2. manager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;//配置精确度
      3. manager.activityType = CLActivityTypeOther;//配置导航用途
    2. 设置对象的代理
      manager.delegate=self;
    3. 在IOS8之前不需要做特殊处理
      1. 但是在IOS8的时候需要主动向用户发起授权请求,并且需要在Info.plist文件中添加NSLocationAlwaysUsageDescription或者NSLocationWhenInUseUsageDescription属性才能得到用户的地理位置信息
        if ([[UIDevice currentDevice].systemVersion integerValue] >= 8.0) {
        [self.manager requestAlwaysAuthorization];
        }
        else {
        [self.manager startUpdatingLocation];
        }

        然后在didChangeAuthorizationStatus代理方法中监听授权的结果,如果授权成功踩调用startUpdatingLocation方法获取定位信息
    4. 调用startUpdatingLocation获取地理位置信息
      [manager startUpdatingLocation];
    5. 调用startUpdatingHeading获取到方向信息
      [manager startUpdatingHeading];
    6. 实现代理中的didUpdateLocations方法获取地理位置信息,在代理方法中locations这个数组里面就包括了所定位到的地理位置信息。
  2. CLLocationManager使用注意事项
    1. 模拟器调试的时候如果出现BUG可以试试重置模拟器
    2. 在调用startUpdatingHeading方法的时候不需要用户授权

CLLocationManager类中一些字段的说明

// CLLocation中的一些字段
location.coordinate; //坐标, 包含经纬度
location.altitude; //设备海拔高度 单位是米
location.course; //设置前进方向 0表示北 90东 180南 270西
location.horizontalAccuracy; //水平精准度
location.verticalAccuracy; //垂直精准度
location.timestamp; //定位信息返回的时间
location.speed; //设备移动速度 单位是米/秒, 适用于行车速度而不太适用于不行
//配置需要的精确度
kCLDistanceFilterNone;
kCLLocationAccuracyBestForNavigation //导航级最佳精准
kCLLocationAccuracyBest; //最佳精准
kCLLocationAccuracyNearestTenMeters; //10米误差
kCLLocationAccuracyHundredMeters; //百米误差
kCLLocationAccuracyKilometer;  //千米误差
kCLLocationAccuracyThreeKilometers; //3千米误差
//定位数据的用途
CLActivityTypeOther 作为普通用途
CLActivityTypeAutomotiveNavigation  作为车辆导航
CLActivityTypeFitness  作为不行
CLActivityTypeOtherNavigation 作为其它导航
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值