У меня есть 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
В идеале я хочу полный почтовый индекс.Единственная альтернатива, которая приходит на ум, - это использовать только первые четыре символа, но я решил сначала спросить здесь, только если у кого-то есть идея получше.