Вы можете использовать класс Apple CLGeocoder
, чтобы перенаправить геокодирование строки в набор совпадающих CLPlacemarks
, каждый из которых будет содержать пары координат для их местоположений.Например:
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:@"94107" completionHandler:^(NSArray *placemarks, NSError *error) {
NSLog(@"Received placemarks: %@", placemarks);
}];
Или же вместо этого вы можете попробовать использовать метод geocodeAddressDictionary:
, который может дать более точные / надежные результаты (хотя я лично не проверял):
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
NSDictionary *locationDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"94107", kABPersonAddressZIPKey, nil];
[geocoder geocodeAddressDictionary:locationDictionary completionHandler:^(NSArray *placemarks, NSError *error) {
NSLog(@"Received placemarks: %@", placemarks);
}];
Подробнее здесь: https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLGeocoder_class/Reference/Reference.html#//apple_ref/occ/cl/CLGeocoder