我看到this question但是没有人回答如何使用Google Places Api for iOS(GMSAutocompleteFilter)更改语言。我需要通过代码设置lenguaje参数,以便Google api始终以英语返回结果。我在documentation中看到它是一个名为' language'的可选参数,但是我无法找到在iOS API中设置它的方法(不是doc中的url示例)
if(aQuery.length>0){
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.type = kGMSPlacesAutocompleteTypeFilterCity;
// filter.accessibilityLanguage = @"en";
[_placesClient autocompleteQuery:aQuery
bounds:nil
filter:filter
callback:^(NSArray *results, NSError *error) {
if (error != nil) {
NSLog(@"Autocomplete error %@", [error localizedDescription]);
handler(nil);
return;
}
if(results.count>0){
NSMutableArray *arrfinal=[NSMutableArray array];
for (GMSAutocompletePrediction* result in results) {
NSDictionary *aTempDict = [NSDictionary dictionaryWithObjectsAndKeys:result.attributedFullText.string,@"description",result.placeID,@"reference", nil];
PlaceObject *placeObj=[[PlaceObject alloc]initWithPlaceName:[aTempDict objectForKey:@"description"]];
placeObj.userInfo=aTempDict;
[arrfinal addObject:placeObj];
}
handler(arrfinal);
}else{
handler(nil);
}
}];
}else{
handler(nil);
}
答案 0 :(得分:1)
您可能需要使用Geocoding API以其他语言接收这些回复。请参阅此处了解反向地理编码文章,其中language
参数向下几段。
您可以使用适当的网址和语言参数制作NSURLRequest
。响应采用JSON格式,因此您应该能够在代码中动态处理此更改。
更简洁的方法可能是创建一个单独的页面,作为一种Web服务。它接受两个参数:语言代码和地址。它使用所请求的语言代码加载API,并反向对地址进行地理编码,从而提供结果。您的页面会将此类Web服务称为两次,每种语言一次,然后根据需要使用结果。