GMSServices GMSGeocoder在IOS中返回结果的reverseGeocodeCoordinate语言

时间:2015-08-10 16:00:50

标签: ios google-maps

我有两个成对使用的应用程序,它们都使用GMSServices的GMSGeocoder进行reverseGeocodeCoordinate搜索。但在第一个结果是英语,其他 - 用设备本地语言。设备相同

我搜索了很多,发现现在没办法让GMSGeocoder使用指定的语言来获得结果。这是不可能的,我们应该使用谷歌API请求。但它以某种方式工作,我不知道如何仅用英语使第二个应用程序返回结果。

类似的关注mapView - 同一设备上的不同语言。

如何在不考虑设备本地化的情况下为GMSServices设置英语?

Local device language present No local languge present

3 个答案:

答案 0 :(得分:1)

GMSGeocoder向您发送了县名,但未向国家/地区发送ISO代码。

您可以使用本机CLGeocoder类从纬度和经度获取counytyISOcode。例如:

CLLocation *location = (your location)
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:location completionHandler:
    ^(NSArray* placemarks, NSError* error){
        if ([placemarks count] > 0)
        {
            CLPlacemark *placemark = [placemarks objectAtIndex:0];
            NSLog(@"Your counry is %@",placemark. ISOcountryCode);
        }
}];

答案 1 :(得分:0)

stackoverflow.com/a/24333593/4195406

复制粘贴回答

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

添加

NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
    if (![[languages firstObject] isEqualToString:@"en"]) {
        [[NSUserDefaults standardUserDefaults] setObject:@[@"en"] forKey:@"AppleLanguages"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

这对我有用

答案 2 :(得分:0)

除了@Dren回答 - 它还有助于在数组中添加regionCode

NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
    if (![[languages firstObject] isEqualToString:@"he"]) {
        [[NSUserDefaults standardUserDefaults] setObject:@[@"he",@"he-IL"] forKey:@"AppleLanguages"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }