2011-01-13 123 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

相關問題