5

क्या एसडीके 3.x पर आपके वर्तमान स्थान जियोकोड को रिवर्स करना संभव है? मुझे बस वर्तमान स्थान का ज़िप कोड प्राप्त करने की आवश्यकता है। मैंने देखा है कि एकमात्र उदाहरण कोरलोकेशन का उपयोग करते हैं जो मुझे लगता है कि एसडीके 4 तक पेश नहीं किया गया था।रिवर्स जियोकोड वर्तमान स्थान

उत्तर

10

आप एमकेआरवीर्स जीकोकोडर 3.0 से 5.0 तक का उपयोग कर सकते हैं। चूंकि 5.0 एमकेआरवीर्स जीकोकोडर की कमी है और सीएलजीकोडर के उपयोग की सलाह दी जाती है।

यदि उपलब्ध हो तो आपको CLGeocoder का उपयोग करना चाहिए। पता जानकारी निकालने में सक्षम होने के लिए आपको एड्रेस बुक फ्रेमवर्क शामिल करना होगा।

#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 प्रतिनिधि विधि:

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

MKReverseGeocoder और ABPersonAddressZIPKey आईओएस 9.0 में पदावनत किया गया।

NSString * zipCode = placemark.postalCode; 
+0

सही काम किया, धन्यवाद! – RyanG

0

http://www.geonames.org पर एक नज़र डालें। यह किसी भी एसडीके में नहीं बनाया गया है।

+0

आप इस वेब सेवा में टाई IPhones वर्तमान स्थान का उपयोग किया जा सका: इसके बजाय CLPlacemark की postalcode संपत्ति ज़िप कोड प्राप्त करने के लिए इस्तेमाल किया जा सकता? – savagenoob

+0

बिल्कुल। बस अक्षांश/देशांतर प्रदान करें। –

0

CoreLocation एसडीके 3 (2.0 के बाद से) लेकिन CLGeocoder (जो रिवर्स geocode प्रदान करता है) में उपलब्ध 5.0 बाद से उपलब्ध है था।
सौभाग्य से MapKit ढांचे में MKReverseGeocoder ऑब्जेक्ट है। यह ऑब्जेक्ट रिवर्स जियोकोडिंग भी प्रदान करता है (लेकिन एसडीके 5 में अप्रचलित है)।