对于两个不同的坐标系,我无法从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";
} 问题是为什么我没有得到所有的信息。比如城市,ZIP ..。失踪了。我应该如何在程序中处理这个问题。
发布于 2012-07-19 13:31:36
地理定位总是使用最好的可用信息。最有可能的是,在尼泊尔,与苹果或其服务提供商签订合同的地图公司没有提供你丢失的信息。这更多地是一个合同/服务质量问题,我不认为你能用它做任何事情。除了试图优化您的应用程序以提供最好的用户体验,即使它只有不完整的数据。
https://stackoverflow.com/questions/11559537
复制相似问题