0

ドキュメントと同じオートコンプリート スクリプトがあります: https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete

私のインクルードスクリプト:

<script type="text/javascript" src="//maps.google.com/maps/api/js?v=3.8&sensor=false&libraries=geometry,places&language=&hl=&region=FR"></script>

ジャバスクリプト:

function initAutocomplete(callback, input_s, lat_s, lng_s, label_s) {

    var input = $(input_s)[0];
    var autocomplete = new google.maps.places.Autocomplete(input);
    //autocomplete.bindTo('', search_map.map);
    google.maps.event.addListener(autocomplete, 'place_changed', function () {
        var place = autocomplete.getPlace();
        if (place.geometry) {
            $(lat_s).val(place.geometry.location.lat());
            $(lng_s).val(place.geometry.location.lng());
            $(label_s).val(place.formatted_address);
            if (callback) {
                callback();
            }

        }
    });
}

initAutocomplete(somefunction, '#zipcode_search_input', "#search_lat", "#search_lng", "#search_address_label");

結果がフランスの都市に偏っていることを望みます. 例: 「laval」と入力Laval, Franceすると、最初に表示され、次にLaval, Canada.

include スクリプトでregion またはlanguageregionまたはhlを指定しても役に立ちません。結果をフランスに偏らせるにはどうすればよいですか?

4

1 に答える 1

2

ロケーション バイアスを使用する必要があります。

変化する:

var autocomplete = new google.maps.places.Autocomplete(input);

に:

var autocomplete = new google.maps.places.Autocomplete(input, 
   {componentRestrictions: {country: 'fr'}});

編集: componentsRestrictions は、実際には特定の国での結果を制限します。代わりに結果にバイアスをかけるには (他の国の結果は引き続き表示されますが、優先度は低くなります)、次のようにします。

ここで sw と ne lat/lng を取得します

var southWest = new google.maps.LatLng(42.97250, -3.82324);
var northEast = new google.maps.LatLng(51.64529, 5.49316);
var bounds = new google.maps.LatLngBounds(southWest,northEast);
var autocomplete = new google.maps.places.Autocomplete(input, {bounds: bounds});
google.maps.event.addListener(autocomplete, 'place_changed', function () {
  //...
});
于 2013-08-01T13:49:45.773 に答える