对于两个不同的坐标系,我无法从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 ..缺失。我应该如何在程序中处理这个问题。
答案 0 :(得分:1)
地理定位始终使用最佳可用信息。最有可能在尼泊尔,与Apple或其服务提供商签约的地图公司没有提供您所缺少的信息。这更像是合同/服务质量问题,我认为您无法做任何事情。除了尝试优化您的应用程序以提供最佳的用户体验,即使它只有不完整的数据。