0

CLLocationCoordinate2D を取得する適切な方法は何ですか?

.h:

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

.m

//Called when the location can be obtained
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{

    //Get the latitude and longitude location
    CLLocation *lastLocation = [locations lastObject];
    _latitude = [[NSString alloc] initWithFormat:@"%f", lastLocation.coordinate.latitude];
    _longitude = [[NSString alloc] initWithFormat:@"%f", lastLocation.coordinate.longitude];
}

これですか:

_coordinate = lastLocation.coordinate;

またはこれ:

_coordinate = manager.location.coordinate;
4

1 に答える 1

0

これは場所のプログラミングについて知っておく必要があるため、コメントで既に述べられているように、最初にドキュメントを読んでください。
次に、デリゲートから取得した最初のデータではないことに注意してください。これは、キャッシュされたデータ (タイムスタンプを確認する必要があります) または無効なデータ (水平精度がゼロ未満) である可能性があるためです。
そのコードを使用できます:

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
    CLLocation * newLocation = [locations lastObject];
    if (newLocation.horizontalAccuracy < 0) {
        return;
    }
    NSTimeInterval interval = [newLocation.timestamp timeIntervalSinceNow];
    if (abs(interval)>5) {
        return;
    }
   //YOUR CODE HERE
}

これが役に立てば幸いです、アンドレア

于 2013-04-15T06:11:47.403 に答える