2011-01-13 85 views
0

我需要在我的应用程序中显示地图上currentLocation的horizo​​ntalAccuracy。为此,我把一行代码放在viewDidLoad()中; (_currentLocation是CLLocationManager的位置。)Iphone CLLocationManager horizo​​ntalAccuracy更新。什么时候?我怎么知道它?

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

它显示的准确性。

问题是精度没有改变。如果我们等待足够多的话,水平准确度会改变它的准确性(但并非总是如此)。

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

我预料可能有一个方法在CLLocationManager附近的某处; - (CLLocationAccuracy *)horizo​​ntalAccuracyUpdated():

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

回答

0

从你的问题来看,你是否正在使用自己的CLLocationManager实例,或者从MKMapView获取当前位置还不清楚。

如果你只是使用的MKMapView,地图视图将会使委托调用每次更新用户的位置,时间的方法- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation,而且它通过userLocation变量将有一个.horizontalAccuracy参数,使该准确性以米为单位。

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

如果您实际使用的是CLLocationManager,除非委托方法为- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation,否则同样如此。

+0

谢谢。如果用户不移动? (我有CLLocationManager.h,CLLocationManager * _locationManager;和.m,_currentLocation = _locationManager.location ;.) – bicbac

+0

哦,实际上我正要看看那个委托方法。我仍然需要问'如果用户不移动?'。它仍然更新准确性? – bicbac

+0

didUpdateToLocation方法正是我所需要的。谢谢。 – bicbac

相关问题