Iphone CLLocationManager horizo​​ntalAccuracy更新。什么时候?我怎么知道呢?

时间:2011-01-13 18:06:47

标签: iphone cllocationmanager

我需要在我的应用中在地图上显示currentLocation的horizo​​ntalAccuracy。为此,我在viewDidLoad()中添加了一行代码; (_currentLocation是CLLocationManager的位置。)

label4Accuracy.text = [NSString stringWithFormat:@"Accuracy: %.fm", _currentLocation.horizontalAccuracy];

它显示的准确性。

问题是准确性不会改变。如果我们等待足够(但并非总是如此),horizo​​ntalAccuracy会改变其准确性。

我希望我的应用能够做的是改变准确度并实时在地图上显示。

我预计在CLLocationManager附近可能会有一个方法; - (CLLocationAccuracy *)horizo​​ntalAccuracyUpdated():

但没有。所以我的问题是我应该在哪里放置上面的代码行来显示currentLocation的horizo​​ntalAccuracy,它根据实际设备的当前精度而变化?

1 个答案:

答案 0 :(得分:0)

从您的问题中不清楚您是使用自己的CLLocationManager实例,还是从MKMapView获取当前位置。

如果您只是使用MKMapView,那么每次更新用户的位置时,您的地图视图都会调用方法- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation,并且它传递的userLocation变量将具有一个.horizontalAccuracy参数,以米为单位给出精度。

因此,将视图控制器设置为地图视图的委托,并实现该方法并在那里观察更新。

如果您实际使用的是CLLocationManager,除了委托方法为- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation之外,情况也是如此。