我正在使用Google地方信息自动完成服务,我需要过滤特定于国家/地区的地点并找到this。
当我传递参数components = country:se来过滤自动完成字段时,它的响应是REQUEST_DENIED
NSMutableString *url = [NSMutableString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/autocomplete/json?input=%@&components=country:se&sensor=%@&key=%@",
[input stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
SPBooleanStringForBool(sensor), key];
我需要自动填充功能才能提供针对国家/地区的建议。
由于
答案 0 :(得分:1)
这对我来说很好。 您可以通过添加地理区域的极左上和右下位置点来添加区域边界来设置此项。
像我使用的美国一样。GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:CLLocationCoordinate2DMake(52.00, 148.00)
coordinate:CLLocationCoordinate2DMake(18.00, -71.00)];
GMSPlacesClient * placesClient = [[GMSPlacesClient alloc] init];
[placesClient autocompleteQuery:fieldValue bounds:bounds filter:nil
callback:^(NSArray *results, NSError *error)
{
if (error != nil)
{
NSLog(@"Autocomplete error %@", [error localizedDescription]);
return;
}
else
{
[self.autoComplete removeAllObjects];
[self.AddressPlaceID removeAllObjects];
for (GMSAutocompletePrediction* result in results)
{
CustomAddress * parseAddress = [[CustomAddress alloc] init];
NSString * adString = [parseAddress removeCountryFromAddress:result.attributedFullText.string];
[self.autoComplete addObject:adString];
[self.AddressPlaceID addObject:result.placeID];
}
[self.autoCompleteTable reloadData];
}
}];
但你仍然可以得到其他位置的结果。它首先会优先选择您在GMCoordinateBounds
中定义的地理边界答案 1 :(得分:0)
为什么不使用iOS SDK获取特定国家/地区的结果?请遵循此answer。