1

iPhoneでユーザーの場所を見つける必要があります。を使用してユーザーの現在の場所を見つけることができますCLLocation Manager。しかし、取得している場所は、物理デバイスの場所に対して正確ではありません。精度を設定するために次の基準を使用しました

    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    locationManager.delegate = self;
    locationManager.distanceFilter = 10;
    [locationManager startMonitoringSignificantLocationChanges];
    [locationManager release];

「newLocation.verticalAccuracy」と「newLocation.horizo​​ntalAccuracy」をlocationManager:didUpdateToLocation:fromLocation: メソッド内で印刷しようとすると、ほとんどの場合、水平方向の精度が約 10.0000、垂直方向の精度が 12.00000 になります。

それで、より正確にユーザーの位置を見つける他の方法はありますか、それとも設定がありませんか? 助けてください。

参考までに:私はWiFiを使用しており、より良い結果を得るためにオープンな場所でテストしています.

4

1 に答える 1

1

このリンクを見てください

LocateMeサンプルデモプロジェクト

またはこれを使用します

.hファイルに入れます

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>

@interface yourController : UIViewController <CLLocationManagerDelegate> {
    CLLocationManager *locationManager;
}

@end

および.mファイル

initメソッドで

locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];

そして、この関数を使用します。

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
    NSLog(@"OldLocation %f %f", oldLocation.coordinate.latitude, oldLocation.coordinate.longitude);
    NSLog(@"NewLocation %f %f", newLocation.coordinate.latitude, newLocation.coordinate.longitude);
}
于 2012-09-06T10:16:23.277 に答える