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的时候代表定位不可信,所以我们可以通过这个方式筛选掉不符合规格的数据,并且要求重新获取地理位置信息。

  • 相关阅读:
    11111 Generalized Matrioshkas
    Uva 442 Matrix Chain Multiplication
    Uva 10815 Andy's First Dictionary
    Uva 537 Artificial Intelligence?
    Uva 340 MasterMind Hints
    SCAU 9508 诸葛给我牌(水泥题)
    Uva 10420 List of Conquests(排序水题)
    Uva 409 Excuses, Excuses!
    10/26
    11/2
  • 原文地址:https://www.cnblogs.com/developer-ios/p/4810530.html
Copyright © 2011-2022 走看看