2012-03-20 2 views
1

CoreLocation을 찾았고 우편 번호를 알아 내기 위해 reverseGeocodeLocation을 실행하려고합니다. 그러나 불완전한 우편 번호 (SO31 4)가 나타납니다. : 특히iOS CoreLocation 불완전한 영국 우편 번호를 제공하는 CLGeocoder

- (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]; 
}]; 
} 

나는 또한 위도/경도 Google지도 API에, 당신은 여기에서 볼 수 있습니다 노력하고 유사한 결과를 얻을, 상기 4. 여기에 내가 사용하고 코드의 후 일반적으로 다른 두 개의 문자를 기대할 수 http://maps.googleapis.com/maps/api/geocode/json?latlng=50.87138339,-1.30983213&sensor=true

이상적으로 나는 전체 우편 번호를 원합니다. 마음에 오는 유일한 대안은 처음 네 글자 만 사용하는 것입니다.하지만 저는 먼저 여기에 누군가에게 더 좋은 아이디어가 있다고 묻습니다.

답변

1

영국 전체 우편 번호 데이터베이스가 없으므로 Google API만으로이 해결책을 얻을 수 있습니다.

전체 우편 번호 데이터베이스와 http://www.postcodeanywhere.co.uk/ 같은 회사를 사용해야합니다.

0

답장을 보내주십시오. 그러나 가치가있는 경우, 우편 번호는 마지막 두 글자가없는 유효한 우편 번호입니다.이 번호는 더 넓은 영역을 포괄합니다. 이상하게 보입니다.하지만 마지막 숫자를 버리는 것보다 더 정확합니다.

0

브라질에서 우편 번호와 동일한 문제가 발생했습니다. 여기에 00000-000 형식이 있고 (CLPlacemark)은 처음 다섯 자리 만 반환했습니다.

addressDictionary 속성에 액세스하는 전체 우편 번호는 CLPlacemark에서 가져올 수 있습니다. 이 NSDictionary에서 키의 값인 ZIPPostCodeExtension에 필요한 정보를 얻을 수 있습니다.

관련 문제