2016-03-25 1 views
0

Je suis capable de trouver l'emplacement actuel dans le champ de recherche de recherche automatique. Mais je ne peux pas trouver le code postal de ce code. S'il vous plaît donnez-moi une solution.Comment obtenir le code postal de l'emplacement actuel dans iOS en utilisant google api

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

} 
} 

Répondre

0

Si vos exigences ne sont pas limitées à l'utilisation de l'API de Google, vous pouvez utiliser CoreLocation à la place. Lorsque vous obtenez l'emplacement dans le rappel du délégué, vous pouvez inverser le géocodage de l'objet emplacement dans un repère qui contient le code postal.

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