Googleプレイスの場所と、検索クエリに一致するデータベースのイベントを表示するカスタムオートコンプリートフィールドを設定しています。このため、私はGoogleプレイスオートコンプリートサービスを使用して、プレイスオートコンプリートをテキストフィールドに直接接続するのではなく、クエリ予測を取得しています。
問題は、オートコンプリートサービスを使用して、プレイスオートコンプリートの候補を国でフィルタリングする方法がわからないことです。
私はもう試した:
var service = new google.maps.places.AutocompleteService(null, {
types: ['cities'],
componentRestrictions: {country: "au"}
});
ただし、ドイツとフランスのオートコンプリートオプションは引き続き表示されます:(
助言がありますか?
サービスを作成するときではなく、サービスを呼び出すときに制限を通過する必要があります。ここに:
//create service
service = new google.maps.places.AutocompleteService();
//perform request. limit results to Australia
var request = {
input: 'Brisbane',
componentRestrictions: {country: 'au'},
};
service.getPlacePredictions(request, callback);
タイプ、および AutocompletionRequest を使用してcomponentRestrictionsを指定できます。ここに例があります-
var service = new google.maps.places.AutocompleteService();
service.getPlacePredictions({ input: query, types: ['geocode'],
componentRestrictions:{ country: 'us' } },
function (predictions, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
var results = document.getElementById('results');
for (var i = 0, prediction; prediction = predictions[i]; i++) {
results.innerHTML += '<li>' + prediction.description + '</li>';
}
}
});
ドキュメントに概説されているように 参照 、プレイスライブラリAutocompleteService
はサポートしていません AutocompleteOptions 。これが価値のある機能になると思われる場合は、 Places API-機能リクエスト を提出してください。
このコードを使用する必要があります。
var options = {
types: ['(cities)'],
componentRestrictions: {country: ["in"]}
}
//Find From location
var input= document.getElementById('input_box_city');
var fromAuto = new google.maps.places.Autocomplete(input, options);