iOS CoreLocation CLGeocoder дает неполный почтовый индекс в Великобритании - PullRequest
2 голосов
/ 20 марта 2012

У меня есть CoreLocation, и я пытаюсь запустить reverseGeocodeLocation, чтобы выяснить почтовый индекс.Однако я получаю неполный почтовый индекс (SO31 4).Обычно вы ожидаете еще два символа после 4. Вот код, который я использую:

- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
       fromLocation:(CLLocation *)oldLocation {
    [self.geocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) {
    CLPlacemark *placemark = [placemarks objectAtIndex:0];

    self.postcode.text = placemark.postalCode;
    if (self.postcode.text.length > 0)
        [self.locationManager stopUpdatingLocation];
}];
}

Примечательно, что я также получаю аналогичные результаты при использовании лат / долг в API Карт Google, вы можете увидеть здесь: http://maps.googleapis.com/maps/api/geocode/json?latlng=50.87138339,-1.30983213&sensor=true

В идеале я хочу полный почтовый индекс.Единственная альтернатива, которая приходит на ум, - это использовать только первые четыре символа, но я решил сначала спросить здесь, только если у кого-то есть идея получше.

Ответы [ 3 ]

1 голос
/ 20 марта 2012

У них нет полной базы данных почтовых индексов в Великобритании, поэтому вы можете получить это разрешение только с помощью API Google.

Вам нужно использовать полную базу данных почтовых индексов, а такие компании, как http://www.postcodeanywhere.co.uk/ продаватьим.

0 голосов
/ 31 августа 2014

Просто была такая же проблема с почтовым индексом в Бразилии.Здесь у нас есть формат 00000-000, и свойство postalCode из CLPlacemark возвращало только первые пять цифр.

Можно получить полный номер почтового индекса, получая доступ к свойству addressDictionary из CLPlacemark.В этом NSDictionary мы можем получить необходимую нам информацию в значениях из ключей: ZIP и PostCodeExtension.

0 голосов
/ 25 мая 2013

Поздний ответ - но за все, что он стоит, почтовый индекс по-прежнему является действительным почтовым индексом без последних 2 букв - он просто охватывает более широкую область. Это выглядит странно, но все же точнее, чем если вы уроните последний номер.

...