2

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");
    }    
}

円は通常、位置の精度を小さな青い円で囲むことで表します。これにより、精度が明らかに送信されます。

ご協力いただきありがとうございます。

4

2 に答える 2

1

horizontalAccuracyプロパティは、座標 の現在のインスタンスCLLocationの精度を示します。

CLLocationManagerマップ ビューが使用しているのは、「desiredAccuracy」( で設定および読み取りが可能なプロパティ) ではありません。私の知る限り、その設定には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ます。

于 2012-02-14T14:14:29.810 に答える
0

このデリゲートメソッドはまったく呼び出されますか?インスタンスshowsUserLocationに対してYESに設定されていることを確認してくださいMKMapView

于 2012-02-14T14:04:47.123 に答える