首页 > 移动平台 > 详细

iOS 定位精度

时间:2015-09-15 16:18:53      阅读:349      评论:0      收藏:0      [点我收藏+]

 

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

iOS 定位精度

原文:http://www.cnblogs.com/developer-ios/p/4810530.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!