2

だから私はこれをしばらく見てきましたが、どこにも解決策が見つからないようです。iOSアプリで使用CLGeocoderして、ユーザーが地図を長くタップした場所に最も近い都市を見つけようとしています。主な問題が 2 つあります。

  1. ユーザーが非常にズームアウトしていて、ユーザーがたとえばニューヨークをタップしたとしても (これは意図したとおりです)、マップがズームアウトされているため、CLGeocoderニューヨークのより明白な答えではなく、近くの都市が返されることがよくあります。この問題を克服するために検索の「あいまいさ」を設定する方法がわかりません。
  2. 多くの場合、City返される目印オブジェクトのフィールドは null であり、砂漠や海などの遠隔地では最も一般的です。この場合、理想的には、実際に定義されている最も近いオブジェクトを見つけたいのですが、Cityこれを行う方法がわかりません。
4

1 に答える 1

0

を使用してあなたの場所のすべての詳細を取得するにはCLGeocoder

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    [currentLocation stopUpdatingLocation];

    CLLocation *myLocation = [[CLLocation alloc] initWithLatitude:latitudeValue longitude:longitudeValue];


    CLGeocoder * geoCoder = [[CLGeocoder alloc] init];

    [geoCoder reverseGeocodeLocation:myLocation completionHandler:^(NSArray *placemarks, NSError *error) {

        if(!error)
        {
            for (CLPlacemark * placemark in placemarks)
            {
                NSLog(@"placemark.ISOcountryCode %@",placemark.ISOcountryCode);
                NSLog(@"placemark.country %@",placemark.country);
                NSLog(@"placemark.postalCode %@",placemark.postalCode);
                NSLog(@"placemark.administrativeArea %@",placemark.administrativeArea);
                NSLog(@"placemark.locality %@",placemark.locality);
                NSLog(@"placemark.subLocality %@",placemark.subLocality);
                NSLog(@"placemark.subThoroughfare %@",placemark.subThoroughfare);

            }

        }
        else
        {
            NSLog(@"failed getting city: %@", [error description]);
        }

    }];


}
于 2013-02-12T14:11:05.980 に答える