zoukankan      html  css  js  c++  java
  • iOS 定位精度

     

    由于iOS不能直接控制到GPS,一般来说我们都会使用CLLocationManager来获取地理位置信息,我们会使用

    manager.desiredAccuracy = kCLLocationAccuracyBest;
    

    来请求精确度最高的地理位置信息。但是有个时候请求的地理位置信息偏差很大。

    不是误差的问题,是完全不能用的问题。其实 CLLocation 有一个horizontalAccuracy 属性,我们可以通过它来控制精确度问题。比如我们要求精确度为200米,就可以这样写:

    - (void)locationManager:(CLLocationManager *)Lmanager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
    {
      if (newLocation.horizontalAccuracy < 200 && newLocation.horizontalAccuracy != -1){
         //Many many code here...
      } else {
        [Lmanager stopUpdatingLocation];	 //停止获取
        [NSThread sleepForTimeInterval:10]; //阻塞10秒
        [Lmanager startUpdatingLocation];	//重新获取
      }
    }
    
    

    CLLocation 的 horizontalAccuracy 属性精确度是米,当值为-1的时候代表定位不可信,所以我们可以通过这个方式筛选掉不符合规格的数据,并且要求重新获取地理位置信息。

  • 相关阅读:
    jqGrid表格控件的学习
    list 集合筛选数据
    MySQL跨域
    11-Index页面
    11-Comment页面
    11-Add页面
    11-UploadFile
    11-控制器UI
    11-控制器
    11-数据访问层
  • 原文地址:https://www.cnblogs.com/developer-ios/p/4810530.html
Copyright © 2011-2022 走看看