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

转载于:https://www.cnblogs.com/developer-ios/p/4810530.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值