web-dev-qa-db-ja.com

国によるGoogleプレイスのAutocompleteServiceフィルタリング

Googleプレイスの場所と、検索クエリに一致するデータベースのイベントを表示するカスタムオートコンプリートフィールドを設定しています。このため、私はGoogleプレイスオートコンプリートサービスを使用して、プレイスオートコンプリートをテキストフィールドに直接接続するのではなく、クエリ予測を取得しています。

問題は、オートコンプリートサービスを使用して、プレイスオートコンプリートの候補を国でフィルタリングする方法がわからないことです。

私はもう試した:

var service = new google.maps.places.AutocompleteService(null, {
        types: ['cities'],
        componentRestrictions: {country: "au"}
    });

ただし、ドイツとフランスのオートコンプリートオプションは引き続き表示されます:(

助言がありますか?

16
jeznag

サービスを作成するときではなく、サービスを呼び出すときに制限を通過する必要があります。ここに:

//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);
44
Robert Dodd

タイプ、および 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>';
                    }
                }
            });
8
Saurabh

ドキュメントに概説されているように 参照 、プレイスライブラリAutocompleteServiceはサポートしていません AutocompleteOptions 。これが価値のある機能になると思われる場合は、 Places API-機能リクエスト を提出してください。

1
Chris Green

このコードを使用する必要があります。

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);
0
santosh devnath