iOS 定位精度

iOS 定位精度时间2015-03-1918:30:59图灵社区由于iOS不能直接控制到GPS,一般来说我们都会使用CLLocationManager来获取地理位置信息,我们会使用manager.desiredAccuracy=kCLLocationAccuracyBest;来请求精确度最高的地理位置信息。但

大家好,欢迎来到IT知识分享网。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://yundeesoft.com/32720.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信