CLLocationManager startMonitoringForRegion 会使用期望的准确度吗?

Posted

技术标签:

【中文标题】CLLocationManager startMonitoringForRegion 会使用期望的准确度吗?【英文标题】:Will the CLLocationManager startMonitoringForRegion use the desiredAccuracy? 【发布时间】:2014-07-03 06:13:11 【问题描述】:

我正在像这样初始化我的 CLLocationManager 实例:

CLLocationManager *locationManager = [[CLLocationManager alloc]init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;

....

[locationManager startMonitoringForRegion:region];

我了解到区域监控基于 WLAN 和蜂窝塔。此外,我读过使用低期望精度(低于 1000)将触发 GPS。但是在文档中说明了以下内容:

此属性仅与标准位置服务结合使用,在监视重大位置变化时不使用。

如果我使用 kCLLocationAccuracyBestForNavigation,startMonitoringForRegion 会使用 GPS 吗?

【问题讨论】:

【参考方案1】:

当您监控该区域时,所需的准确度没有意义。这是因为它不是基于准确位置的结果。它们为您提供用户的暂定位置。当您使用标准服务并调用函数[locationManager startUpdatingLocation]; 时,准确性适用。在区域监控和重大位置变化的情况下,精度会被忽略。

【讨论】:

如果我有两个 locationManager 实例,一个使用 startUpDatingLocation,另一个使用区域监控。在一个实例上设置 desiredAccuracy 会影响另一个实例吗? ios 中没有像 android 这样的被动定位服务。所以,它不会影响其他人。

以上是关于CLLocationManager startMonitoringForRegion 会使用期望的准确度吗?的主要内容,如果未能解决你的问题,请参考以下文章

为啥'CLLocationManager.locationServicesEnabled()'默认为真?

Xcode 6 GM - CLLocationManager

CLLocationManager 和 CLGeoCoder

CLLocationManager:没有调用 didChangeAuthorization 和 didRangeBeacons

CLLocationManager 最后一个已知位置

CLLocationManager 从不调用委托方法[重复]