如何使用google api从iOS中的当前位置获取邮政编码

如何使用google api从iOS中的当前位置获取邮政编码,ios,objective-c,google-api,google-places-api,zipcode,Ios,Objective C,Google Api,Google Places Api,Zipcode,我能够在自动填充搜索文本字段中找到实际位置。但是我无法从这个代码中找到邮政编码。请给我一个解决办法 -(void)googleAPICallWithText:(NSString*)strData { strData = [strData stringByReplacingOccurrencesOfString:@" " withString:@"+"]; NSLog(@"Value of allSelectedItems = %@", strData); //google api url

我能够在自动填充搜索文本字段中找到实际位置。但是我无法从这个代码中找到邮政编码。请给我一个解决办法

-(void)googleAPICallWithText:(NSString*)strData {


strData = [strData stringByReplacingOccurrencesOfString:@" " withString:@"+"];
NSLog(@"Value of allSelectedItems = %@", strData);


//google api url
NSString   *web_service_URL = [NSString stringWithFormat:@"%@json?input=%@&sensor=%@&key=%@",GOOGLE_GEOLOCATION_URL,strData,@"true",GOOGLE_API_KEY];

NSMutableString *reqData = [NSMutableString stringWithFormat:@""];
    id jsonDta= [reqData dataUsingEncoding:NSUTF8StringEncoding];

NSString   *jsonRepresantationFormat = [[NSString alloc]initWithData:jsonDta encoding:NSUTF8StringEncoding];
[self WebsewrviceAPICall:web_service_URL webserviceBodyInfo:jsonRepresantationFormat];
}

 -(void)WebsewrviceAPICall:(NSString *)serviceURL  webserviceBodyInfo:(NSString *)bodyString {
self.connectionTimer = [NSTimer scheduledTimerWithTimeInterval:30.0 target:self selector:@selector(cancelInsingAPICall) userInfo:nil repeats:NO];

NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:serviceURL]];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody:[bodyString dataUsingEncoding:NSUTF8StringEncoding]];

self.connection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];

if( self.connection ){
    self.receivedData = [NSMutableData data];

}
}

如果您的需求不限于使用Google的API,您可以使用CoreLocation。当您在代理的回调中获得位置时,可以将位置对象反向地理编码为一个包含邮政编码的placemark

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
    CLLocation *current = [locations objectAtIndex:0];

    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    [geocoder reverseGeocodeLocation:current completionHandler:^(NSArray *placemarks, NSError *error)
     {
         if (!error) {
             CLPlacemark *placemark = [placemarks objectAtIndex:0];
             NSString *zip = placemark.postalCode;

             // do stuff with zip code
         } else {
             // geocode failed
         }
     }];
}