Places SDK for iOS 支援地點自動完成 (舊版)。如果您熟悉 Place Autocomplete (舊版),Place Autocomplete (新版) 則有下列變更:
採用新的定價模式。如要瞭解所有 API 的價格資訊,請參閱「Places SDK for iOS (新版) 的價格」。
如要發出要求,請呼叫新的
GMSPlacesClient fetchAutocompleteSuggestionsFromRequest:
方法。傳遞至要求:
定義所有要求參數 (例如查詢和工作階段權杖) 的新
GMSAutocompleteRequest
類別例項。GMSAutocompleteSuggestionsCallback
類型的回呼,用於處理回應。
現在,您可以使用
GMSAutocompleteFilter
類別執行下列操作:- 設定用於判斷結果格式的區域代碼。
- 設定預測位移,也就是查詢的 Unicode 字元位移 (從零開始計算)。
回應是由新的
GMSAutocompleteSuggestion
類別定義。這個類別包含新類型GMSAutocompletePlaceSuggestion
的例項陣列,代表建議。工作階段現在會以呼叫「Place Details (New)」或「Address Validation」做為結尾。詳情請參閱「自動完成 (新版) 和工作階段定價」。
要求範例
使用 Place Autocomplete (新版) 時,您會提出要求,並在 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.
}
}
}];