Получить точность местоположения MKMapView - PullRequest
2 голосов
/ 14 февраля 2012

Мне было интересно, есть ли способ получить точность полученного местоположения из MKMapView.

Я бы подумал, что следующий код будет работать, но это не так.Могу ли я также напрямую зарегистрировать свойство?

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {    

    if (userLocation.location.horizontalAccuracy == kCLLocationAccuracyBest) {
        NSLog(@"Best");
    }
    if (userLocation.location.horizontalAccuracy == kCLLocationAccuracyBestForNavigation) {
        NSLog(@"Best for nav");
    }
    if (userLocation.location.horizontalAccuracy == kCLLocationAccuracyHundredMeters) {
        NSLog(@"100m");
    }
    if (userLocation.location.horizontalAccuracy == kCLLocationAccuracyKilometer) {
        NSLog(@"km");
    }
    if (userLocation.location.horizontalAccuracy == kCLLocationAccuracyNearestTenMeters) {
        NSLog(@"10m");
    }
    if (userLocation.location.horizontalAccuracy == kCLLocationAccuracyThreeKilometers) {
        NSLog(@"3km");
    }    
}

Круг обычно представляет точность местоположения, оборачивая его вокруг маленького синего круга, так что точность, очевидно, отправляется.

Спасибоза любую помощь, которую вы можете предложить.

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

Свойство horizontalAccuracy в CLLocation указывает, насколько точны текущий экземпляр координат.

Это не «требуемая точность» (свойство, которое можно установить и прочитать в CLLocationManager), которое использует представление карты. Насколько я знаю, эта настройка недоступна в MKMapView.

Однако в примере приложения Breadcrumb в файле BreadcrumbViewController.m есть этот комментарий:

// Note: we are using Core Location directly to get the user location updates.
// We could normally use MKMapView's user location update delegation but this does not work in
// the background.  Plus we want "kCLLocationAccuracyBestForNavigation" which gives us a better accuracy.

Таким образом, это означает, что MKMapView по крайней мере не использует kCLLocationAccuracyBestForNavigation.

0 голосов
/ 14 февраля 2012

Этот метод делегата вызывается вообще? Убедитесь, что вы установили для showsUserLocation значение YES для экземпляра MKMapView

...