iOS 9 - LocationManager更新位置太频繁
我正在迁移现有的应用程序以与iOS 9一起使用,但没有太多需要更改,但将ATS添加到info.plist
,并使用MKAnnotationView
而不是MKPinAnnotationView
作为地图上的自定义引脚。问题是,当开始测试更改时,我注意到位置更新过于频繁,即使我静止不动。位置管理器初始化的方式没有任何改变。iOS 9 - LocationManager更新位置太频繁
这是日志的一个小例子。
2015-09-25 12:16:25.462 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps/course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time
2015-09-25 12:16:25.464 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps/course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time
2015-09-25 12:16:25.468 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps/course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time
2015-09-25 12:16:25.475 MyApp[2009:911066] location: <+39.09040164,-77.52540765> +/- 65.00m (speed -1.00 mps/course -1.00) @ 9/25/15, 12:16:25 PM Eastern Daylight Time
位置管理设置这样
locationManager = [CLLocationManager new];
locationManager.delegate = self;
locationManager.distanceFilter = 25.0f;
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
[locationManager requestAlwaysAuthorization];
}
[locationManager startUpdatingLocation];
我猜问题是:有什么错我的执行或在那里核心位置API的变化被忽略的距离过滤器?
在locationManager:didUpdateLocations:
方法CLLocationManager
的distanceFilter
财产是被重置取决于速度,iOS 9
这似乎触发新的位置更新(返回最后已知的位置),从而导致数以百计的新位置更新中几秒钟。
有趣。只要你有能力,你应该接受你自己的回答,以便其他读者知道问题已经解决。 –
我看到了同样的结果,但启动后没有更改位置管理器的任何内容。你可以看看http://*.com/questions/32838488/cllocationmanager-in-ios9-giving-incorrect-locations-ios8-is-ok也许? –
@SjoerdPerfors我认为我们的CLLocationManager问题有点不同,我的问题与位置数据不好有关,但**非常频繁的更新。 – quant24
'CLLocationManager'上的'pausesLocationUpdatesAutomatically'属性是否设置为YES?如果设置为“是”,如果位置数据不太可能改变,则通过禁用位置更新来帮助延长电池寿命。 –
@MatteoPacini在代码中的任何一点都不会设置为“否”,默认值是“YES”。我会尝试明确地将其设置为“是”。谢谢。 – quant24
@MatteoPacini我试过了,没有任何区别。感谢寿。 – quant24