2012-03-20 12 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.ここで私が使用しているコードだ後に通常は別の2つの文字を期待しますhttp://maps.googleapis.com/maps/api/geocode/json?latlng=50.87138339,-1.30983213&sensor=true

理想的には、完全な郵便番号が必要です。心に来る唯一の選択肢は、最初の4文字を使用しているだけですが、私は最初に誰かがより良いアイデアを持っていることをまず尋ねると思いました。

答えて

1

Googleのフルサイズの英文郵便番号データベースを持っていないため、Google APIを使用した場合にのみこの解決方法が得られます。

フル郵便番号データベースとhttp://www.postcodeanywhere.co.uk/などの企業を使用する必要があります。

0

遅くとも返信がありますが、それは価値がありますが、郵便番号は最後の2文字のない有効な郵便番号です。それは奇妙に見えますが、あなたが最後の数字をドロップするよりもさらに正確です。

0

ブラジルの郵便番号と同じ問題がありました。 ここでは、00000-000の形式とpostalCodeからCLPlacemarkまでが最初の5桁だけを返しています。

addressDictionaryプロパティにアクセスする完全な郵便番号はCLPlacemarkから取得できます。このNSDictionaryでは、鍵の値で必要な情報を得ることができます:ZIPPostCodeExtension