iphone - ¿Cómo localizar el resultado de la dirección de reverseGeocodeLocation?
ios xcode (3)
Desde iOS11, Apple nos proporciona otra API que puede establecer la configuración regional para imprimir el idioma localizado.
- (void)reverseGeocodeLocation:(CLLocation *)location preferredLocale:(nullable NSLocale *)locale
completionHandler:(CLGeocodeCompletionHandler)completionHandler API_AVAILABLE(macos(10.13), ios(11.0), watchos(4.0), tvos(11.0));
Se supone que mi aplicación de iPhone resuelve la dirección según la latitud y la longitud del usuario. reverseGeocodeLocation funciona bien, pero los resultados están en inglés.
¿Hay una manera de localizar los resultados a otros idiomas?
No se pudo encontrar ninguna información al respecto en Apple o en cualquier 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]];
}
}
Encontré cómo localizar el nombre del país, tal vez ayude:
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];
inserte cualquier ID de país en su lugar @ "en_US"
Mattt Thompson tiene una gran writeup sobre el uso de un método de AddressBookUI.framework para localizar direcciones en su sitio NSHipster . También tiene una biblioteca de formato en github que contiene una clase para hacer este tipo de localización que utiliza el enfoque AddressBookUI.framework que ha descrito.