zoukankan      html  css  js  c++  java
  • iOS开发CLLocation

    CLLocation
    --------------------------------------------------------
    CLLocationManager 定位管理者
    CLLocation 代表位置(经度/纬度/高度/速度/路线等)
    CLHeading 代表移动方向
    CLRegion 代表一个区域
    >CLCircularRegion 圆形区域
    >CLBeaconRegion 蓝牙信号区域

    返回定位服务是否可用
    [CLLocationManager locationServicesEnabled];
    返回延迟定位更新是否可用
    [CLLocationManager deferredLocationUpdatesAvailable];
    返回重大位置改变监听是否可用
    [CLLocationManager significantLocationChangeMonitoringAvailable];
    返回是否支持磁力计算方向
    [CLLocationManager headingAvailable];
    返回蓝牙信号范围服务是否可用
    [CLLocationManager isRangingAvailable];

    --------------------------------------------------------
    设置是否可以暂停定位来节省电池电量, YES不需要定位数据时自动暂停定位
    // mgr.pausesLocationUpdatesAutomatically

    --------------------------------------------------------
    每隔多少米定位一次, 只有水平方向超过该值时才会重新定位
    // mgr.distanceFilter = 100;

    --------------------------------------------------------
    定位精确度
    // mgr.desiredAccuracy;
    kCLDistanceFilterNone;
    kCLLocationAccuracyBestForNavigation 导航级最佳精准
    kCLLocationAccuracyBest; 最佳精准
    kCLLocationAccuracyNearestTenMeters; 10米误差
    kCLLocationAccuracyHundredMeters; 百米胡茬
    kCLLocationAccuracyKilometer; 千米误差
    kCLLocationAccuracyThreeKilometers; 3千米误差

    --------------------------------------------------------
    定位数据的用途
    // mgr.activityType;
    CLActivityTypeOther 作为普通用途
    CLActivityTypeAutomotiveNavigation 作为车辆导航
    CLActivityTypeFitness 作为不行
    CLActivityTypeOtherNavigation 作为其它导航

    --------------------------------------------------------
    // CLLocation
    location.coordinate; 坐标, 包含经纬度
    location.altitude; 设备海拔高度 单位是米
    location.course; 设置前进方向 0表示北 90东 180南 270西
    location.horizontalAccuracy; 水平精准度
    location.verticalAccuracy; 垂直精准度
    location.timestamp; 定位信息返回的时间
    location.speed; 设备移动速度 单位是米/秒, 适用于行车速度而不太适用于不行
    /*
    可以设置模拟器模拟速度
    bicycle ride 骑车移动
    run 跑动
    freeway drive 高速公路驾车
    */

    --------------------------------------------------------
    // CLAuthorizationStatus
    用户从未选择过权限
    kCLAuthorizationStatusNotDetermined
    无法使用定位服务,该状态用户无法改变
    kCLAuthorizationStatusRestricted
    用户拒绝该应用使用定位服务,或是定位服务总开关处于关闭状态
    kCLAuthorizationStatusDenied
    已经授权(废弃)
    kCLAuthorizationStatusAuthorized
    用户允许该程序无论何时都可以使用地理信息
    kCLAuthorizationStatusAuthorizedAlways
    用户同意程序在可见时使用地理位置
    kCLAuthorizationStatusAuthorizedWhenInUse

    --------------------------------------------------------
    // 计算两个位置之间的距离, 单位是米
    [newLocation distanceFromLocation:self.prevLocation];

    --------------------------------------------------------
    获取方向信息不会提示用户(不需要授权), 因为不会泄露隐私
    // [self.mgr startUpdatingHeading];

    magneticHeading 设备与磁北的相对角度
    trueHeading 设置与真北的相对角度, 必须和定位一起使用, iOS需要设置的位置来计算真北
    真北始终指向地理北极点
    磁北对应随着时间变化的地球磁场北极

    // 牛逼的地方
    116.958776,36.721199


    --------------------------------------------------------
    // 错误:使用CoreLocation获取地理位置信息,报错
    Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)"

    解决方法:
    1.确定模拟器(手机)已经联网并且允许程序获取地理位置
    2.重置地理位置服务或者网络服务

    PS:如果是模拟器就果断直接重置模拟器吧 IOS Simulator - Reset Content and Settings..。

  • 相关阅读:
    9.12 其他样式;JS
    9.11 样式表
    9.9 样式表
    PHP延迟几秒后执行,PHP延迟执行,PHP停顿几毫秒后执行 usleep() 和 sleep()
    PHP 去除url参数中出现+、空格、=、%、&、#等字符的解决办法, PHP去除影响url路径的字符
    java第一堂课-常用的电脑快捷键操作和重要的dos命令
    常用第三方接口,支付宝支付,微信支付,软著,IOS开发者账号
    苹果开发者账号申请流程完整版 https://www.jianshu.com/p/655380201685
    thinkphp 去重查询
    将数据导【入】【excel表】格式 前端页面
  • 原文地址:https://www.cnblogs.com/tate-zwt/p/4385956.html
Copyright © 2011-2022 走看看