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



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

-(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。当您在代理的回调中获得位置时,您可以将位置对象反向地理编码为一个包含邮政编码的位置标记。

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

相关内容

  • 没有找到相关文章

最新更新