2010-11-25 28 views
3

j'utiliser ce code pour définir une étiquette avec une chaîne de localisationgéocodage inverse et localisation

locationString = [[NSString alloc] initWithFormat:@"%@%@ - %@ %@%@", 
        thoroughfare,subThoroughfare,postalCode, 
        locality,countryCode]; 

locationLabel.text = locationString; 

où artère, subThoroughfare, postalCode, localité, countryCode sont obtenus à partir d'un repère.

Maintenant, je voudrais visualiser cette chaîne en fonction des paramètres régionaux actuels. Ai-je spécifié un format de chaîne pour chaque locale dans laquelle je suis intéressé ou existe-t-il un moyen plus simple d'obtenir ceci?

Merci, Fran

+0

Ok, merci. Des idées pour cette question? – Sefran2

Répondre

0

La propriété addressDictionary de l'objet devrait permettre de résoudre en placemark partie du problème avec son tableau FormattedAddressLines.

1

vous pouvez utiliser la fonction suivante

-(void) setLocation:(NSString *)latitude withLongitude:(NSString *)longitude { 
    CLGeocoder *geocoder = [[CLGeocoder alloc] init]; 
    CLLocation *location = [[CLLocation alloc] initWithLatitude:[latitude doubleValue] longitude:    
    longitude doubleValue]]; 
     CLGeocodeCompletionHandler completionHandler =^(NSArray *placemarks, NSError *error){ 
       if (error){ 
         NSLog(@"error in fetching location <%@>",error); 
        return ; 
       } 
       if (placemarks && placemarks.count >0){ 
        CLPlacemark *mark = [placemarks objectAtIndex:0]; 
         NSString *addresstring = [[mark addressDictionary] objectForKey:@"FormattedAddressLines"] componentsJoinedByString:@","]; 
      *//fetched addressDictionary for key FormattedAddressLines* 

      }