3

2 つの異なる座標系の CLGeocoder reverseGeocodeLocation から同じ結果を取得できません。たとえば。

CLLocation *tempLocation = [[CLLocation alloc] initWithLatitude:37.785834 longitude:-122.406417]; // coordinate for apple head quater
CLGeocoder *geocoder = [[CLGeocoder alloc] init];    
[geocoder reverseGeocodeLocation:tempLocation completionHandler:
 ^(NSArray* placemarks, NSError* error){
     if ([placemarks count] > 0)
     {
         CLPlacemark *placemark = [placemarks objectAtIndex:0];             
         NSLog(@" %@",placemark.addressDictionary); 
     }
 }];

出力:

City = "San Francisco";
Country = "United States";
CountryCode = US;
FormattedAddressLines =     (
    "Apple Store, San Francisco",
    "1 Stockton St",
    "San Francisco, CA  94108-5805",
    "United States"
);
Name = "Apple Store, San Francisco";
PostCodeExtension = 5805;
State = California;
Street = "1 Stockton St";
SubAdministrativeArea = "San Francisco";
SubLocality = "Union Square";
SubThoroughfare = 1;
Thoroughfare = "Stockton St";
ZIP = 94108;

しかし、私が使用するとき

CLLocation tempLocation = [[CLLocation alloc] initWithLatitude:27.672654 longitude:85.313744]; 
///CLLocation *tempLocation = [[CLLocation alloc] initWithLatitude:37.785834 longitude:-122.406417]; 
CLGeocoder *geocoder = [[CLGeocoder alloc] init]; 
[geocoder reverseGeocodeLocation:tempLocation completionHandler: 
 ^(NSArray placemarks, NSError* error) { 
    if ([placemarks count] > 0) { 
        CLPlacemark *placemark = [placemarks objectAtIndex:0]; 
        NSLog(@" %@",placemark.addressDictionary); 
    }
}]; 

そして出力は

{ 
Country = Nepal; 
CountryCode = NP; 
FormattedAddressLines = ( "Pulchowk Road", Nepal ); 
Name = "Pulchowk Road"; 
State = Bagmati; 
Street = "Pulchowk Road"; 
Thoroughfare = "Pulchowk Road"; 
} 

問題は、なぜ私がすべての情報を取得していないのかということです。たとえば、 City 、 ZIP .. がありません。プログラムでこの問題をどのように処理すればよいですか。

4

1 に答える 1

1

ジオロケーションは常に利用可能な最良の情報を使用しています。ネパールの場合、Appleまたはそのサービスプロバイダーが契約した地図作成会社が、不足している情報を提供しなかった可能性があります。これは契約上/サービス品質の問題であり、それを使ってできることは何もないと思います。不完全なデータしかない場合でも、可能な限り最高のユーザーエクスペリエンスを提供するために、アプリケーションを最適化しようとすることを除いて。

于 2012-07-19T13:31:36.363 に答える