我正在迁移现有的应用程序以使用iOS 9,除了向info.plist
添加ATS并使用MKAnnotationView
代替MKPinAnnotationView
进行自定义引脚之外,没有太多要更改地图。问题是当开始测试变化时,我注意到位置更新过于频繁,即使我站着不动。初始化位置管理器的方式没有任何改变。
以下是日志的一小部分示例。
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];
我想问题是:我的实现是否有问题,或者Core Location API是否忽略了距离过滤器?
答案 0 :(得分:2)
在var loggingOpts = {
reporters: [{
reporter: require('good-console'),
events: { request: 'myTag' }
}]
};
方法中,locationManager:didUpdateLocations:
的{{1}}属性正在根据速度重置,在distanceFilter
这似乎会触发新的位置更新(返回最后知道的位置),因此在几秒钟内就会产生数百个新的位置更新。