5

Geçerli konumunuzu SDK 3.x'de Geocode ile tersine çevirmek mümkün müdür? Sadece mevcut konumun posta kodunu almam gerekiyor. Görmediğim CoreLocation'ı kullanmamın tek örneği, SDK 4'e kadar sunuldu.Ters Coğrafi Konum Geçerli Konum

cevap

10

MKReverseGeocoder'ı 3.0 ile 5.0 arasında kullanabilirsiniz. 5.0 MKReverseGeocoder kullanımdan kaldırılmıştır ve CLGeocoder kullanımı tavsiye edilir.

Varsa CLGeocoder kullanmalısınız. Adres bilgisini elde edebilmek için Adres Defteri çerçevesini dahil etmeniz gerekir.

#import <AddressBookUI/AddressBookUI.h> 
#import <CoreLocation/CLGeocoder.h> 
#import <CoreLocation/CLPlacemark.h> 

- (void)reverseGeocodeLocation:(CLLocation *)location 
{ 
    CLGeocoder* reverseGeocoder = [[CLGeocoder alloc] init]; 
    if (reverseGeocoder) { 
     [reverseGeocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) { 
      CLPlacemark* placemark = [placemarks firstObject]; 
      if (placemark) { 
       //Using blocks, get zip code 
       NSString* zipCode = [placemark.addressDictionary objectForKey:(NSString*)kABPersonAddressZIPKey]; 
      } 
     }]; 
    }else{ 
     MKReverseGeocoder* rev = [[MKReverseGeocoder alloc] initWithCoordinate:location.coordinate]; 
     rev.delegate = self;//using delegate 
     [rev start]; 
     //[rev release]; release when appropriate 
    } 
    //[reverseGeocoder release];release when appropriate 
} 

MKReverseGeocoder temsilci yöntemi: MKReverseGeocoder ve ABPersonAddressZIPKey IOS 9.0 kaldırıldı edildi

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark 
{ 
    //Get zip code 
    NSString* zipCode = [placemark.addressDictionary objectForKey:(NSString*)kABPersonAddressZIPKey]; 
} 

.

NSString * zipCode = placemark.postalCode; 
+0

Mükemmel çalıştı, teşekkürler! – RyanG

0

http://www.geonames.org. Herhangi bir SDK'ya yerleşik değil.

+0

bu webservice içine kravat IPhone'lar mevcut konumu kullanabilir misiniz: Yerine CLPlacemark ait postalcode mülkiyet posta kodunu almak için kullanılabilir? – savagenoob

+0

Kesinlikle. Sadece enlem/boylamı sağla. –

0

CoreLocation 5.0 beri mevcuttur SDK 3 (2.0 yana), ancak CLGeocoder (ki ters coğrafi kodu içerir) içinde kullanılabilir.
Neyse ki MapKit framework'ün MKReverseGeocoder nesnesi var. Bu nesne ayrıca ters coğrafi kodlama sağlar (ancak SDK 5'de geçersizdir).

İlgili konular