Places SDK for iOS 支持 地点自动补全(旧版)。 如果您熟悉 地点自动补全(旧版), 地点自动补全(新版) 会进行以下更改:
使用新的定价模式。如需了解所有 API 的定价信息,请参阅 Places SDK for iOS(新版)的定价。
如需发出请求,请调用新的
GMSPlacesClient fetchAutocompleteSuggestionsFromRequest:方法。将以下内容传递给请求:
新
GMSAutocompleteRequest类的实例,用于定义所有请求参数,例如查询和 会话令牌。类型为
GMSAutocompleteSuggestionsCallback的回调,用于处理响应。
现在,您可以使用
GMSAutocompleteFilter类执行以下操作:- 设置用于确定结果格式的区域代码。
- 设置预测偏移量,即查询的从零开始的 Unicode 字符偏移量。
响应由新的
GMSAutocompleteSuggestion类定义。此类包含一个新类型GMSAutocompletePlaceSuggestion的实例数组,用于表示建议。会话现在以调用 地点详情(新版)或 地址验证结束。如需了解详情,请参阅 自动补全(新版)和会话定价。
示例请求
使用地点自动补全(新版)时,您可以发出请求并在 GMSAutocompleteRequest 实例中传递所有参数:
Swift
let token = GMSAutocompleteSessionToken()
let northEastBounds = CLLocationCoordinate2DMake(37.38816277477739, -122.08813770258874)
let southWestBounds = CLLocationCoordinate2DMake(37.39580487866437, -122.07702325966572)
let filter = GMSAutocompleteFilter()
filter.types = [kGMSPlaceTypeRestaurant]
filter.locationBias = GMSPlaceRectangularLocationOption(northEastBounds, southWestBounds)
let request = GMSAutocompleteRequest(query:"Sicilian piz")
request.filter = filter
request.sessionToken = token
GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { results, error in
// Handle response
})
Objective-C
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(37.38816277477739, -122.08813770258874);
CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(37.39580487866437, -122.07702325966572);
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init];
filter.types = @[ kGMSPlaceTypeRestaurant ];
filter.locationBias = GMSPlaceRectangularLocationOption(northEast, southWest);
GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"];
request.sessionToken = token;
request.filter = filter;
[[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){
// Handle response
for (GMSAutocompleteSuggestion *suggestion in results) {
if (suggestion.placeSuggestion) {
// Show place suggestion data.
}
}
}];