My iphone app supposed to resolve address based on latitude and longitude of the user. reverseGeocodeLocation works fine, but results are in english.
Is there a way to localize the results to other languages?
couldnt find any information about it at apple or anywhere else.
The code I use is:
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]]; } }
i found how to localize country name, maybe it'll help:
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];
insert any country id instead @"en_US"
Solution for Swift 4, iOS 11
You can force to get geocoding results in chosen locale language by setting argument: preferredLocale: Locale.init(identifier: "en_US")
.
CLGeocoder().reverseGeocodeLocation(location, preferredLocale: Locale.init(identifier: "en_US"), completionHandler: {(placemarks, error) -> Void in print(location) if error != nil { print("Reverse geocoder failed with error" + error!.localizedDescription) return } if placemarks!.count > 0 { let pm = placemarks![0] print(pm.administrativeArea!, pm.locality!) } else { print("Problem with the data received from geocoder") } })
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With