2012-01-10 12 views
21

Se supone que mi aplicación de iPhone debe resolver la dirección según la latitud y la longitud del usuario. reverseGeocodeLocation funciona bien, pero los resultados están en inglés.cómo localizar el resultado de la dirección de reverseGeocodeLocation?

¿Hay alguna forma de localizar los resultados en otros idiomas?

no se pudo encontrar ninguna información al respecto en Apple o en otro lugar.

El código que utilizo es:

CLGeocoder *geocoder = [[[CLGeocoder alloc] init] autorelease]; 
CLLocation *location = [[[CLLocation alloc] 
     initWithLatitude:coord.latitude longitude:coord.longitude] autorelease]; 

[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) { 
    NSLog(@"reverseGeocodeLocation:completionHandler: Completion Handler called!"); 

    if (error){ 
     NSLog(@"Geocode failed with error: %@", error); 
     [self displayError:error]; 
     return; 
    } 
    if(placemarks && placemarks.count > 0) 
    { 
     //do something 
     CLPlacemark *topResult = [placemarks objectAtIndex:0]; 

     NSString *addressTxt = [NSString stringWithFormat:@"%@ %@,%@ %@", 
      [topResult subThoroughfare],[topResult thoroughfare], 
      [topResult locality], [topResult administrativeArea]]; 
    } 
} 
+2

CLGeocoder se basa en el geocodificador Google, que puede producir resultados localizadas si la opción de idioma está configurada en los parámetros de URL. Uso la API de Google, y tengo resultados que parecen estar localizados en otros idiomas. Esto puede ser obvio, pero ¿estás configurando el idioma del dispositivo en algo más que en inglés? ¿Qué más has intentado? – Jim

+0

¡sí! Funcionó cambiando el idioma, pero la pregunta aún permanece si es posible forzar los resultados a un lenguaje específico. – user513790

+0

De la documentación, no lo creo. Si no ha recibido una respuesta más completa en unas pocas horas, le mostraré un código que podría ayudarlo. Sin embargo, no lo tengo justo en frente de mí. – Jim

Respuesta

1

Mattt Thompson tiene una gran writeup sobre el uso de un método de la AddressBookUI.framework para la localización de direcciones en su sitio NSHipster. También tiene un formatting library en github que contiene una clase para hacer este tipo de localización que utiliza el enfoque AddressBookUI.framework que ha descrito.

9

me encontré cómo adaptar nombre del país, a lo mejor que va a ayudar:

CLPlacemark *placemark; 

NSString *identifier = [NSLocale localeIdentifierFromComponents: [NSDictionary dictionaryWithObject: placemark.ISOcountryCode forKey: NSLocaleCountryCode]]; 
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
NSString *country = [usLocale displayNameForKey: NSLocaleIdentifier value: identifier]; 

introduzca ningún país Identificación del lugar @ "en_US"

+0

buscando esta respuesta desde hace horas, thx :) –

+8

¿Sabes cómo puedo hacer lo mismo para placemark.locality? ex: "Roma" -> "Roma" – Dodgson86

Cuestiones relacionadas