Aar*_*ski 2 objective-c cllocationmanager cllocation ios
我正在尝试将kCLLocationAccuracyHundredMeters 的位置精度用于我的应用程序中的标准位置更新,这似乎在一段时间内工作得相对较好,但每隔一段时间我会在更新之间收到 10 分钟的间隔(在行驶数英里时)不同的方向),这似乎与设置不符。这是我的位置管理器上的设置。此外,我只使用前台位置更新,因此对于这些测试,我一直在屏幕上显示应用程序,而应用程序始终处于前台。
self.locManager = [[CLLocationManager alloc] init];
self.locManager.delegate = self;
self.locManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
self.locManager.distanceFilter = 15;
Run Code Online (Sandbox Code Playgroud)
我使用相同的其他设置尝试了kCLLocationAccuracyBest,我在整个驱动器中都获得了完美的测量结果,但我不需要那么准确的位置。我认为百米精度仍然会以较低的精度提供相对一致的更新,这就是我们正在寻找的。
这只是使用kCLLocationAccuracyHundredMeters设置与 kCLLocationAccuracyBest 的副作用吗?
在 iPhone 6s 上测试:11.0.2 和 iPhone 7Plus:11.0.3
任何帮助表示赞赏,谢谢!
编辑:
我应该澄清一下,我确实在下面列出的 CLLocationManager 委托方法中设置了日志记录,但从未收到任何回调/日志。
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error;
- (void)locationManager:(CLLocationManager *)manager didFinishDeferredUpdatesWithError:(nullable NSError *)error;
- (void)locationManagerDidPauseLocationUpdates:(CLLocationManager *)manager;
- (void)locationManagerDidResumeLocationUpdates:(CLLocationManager *)manager;
Run Code Online (Sandbox Code Playgroud)
当您询问 kCLLocationAccuracyHundredMeters 时,iPhone 根本不使用 GPS,而是依靠手机信号塔和 wifi 接入点进行三角测量。这意味着 iPhone 会以 wifi 扫描的频率更新位置,这远非连续的。如果您远离有 wifi 覆盖的区域,手机信号塔将成为您唯一的来源,您可能只有在手机信号塔之间切换时才开始获取位置更新。
简而言之:
设置精度告诉 iOS 使用哪个硬件,
距离过滤器告诉 iOS 在用新数据唤醒 CPU 之前移动多远
| 归档时间: |
|
| 查看次数: |
1713 次 |
| 最近记录: |