2013-08-01 36 views
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> 

的JavaScript:

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

指定區域或language,regionhl在include腳本中沒有幫助。我如何將結果偏向法國?

回答

2

你必須使用location biasing

變化:

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

到:

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

編輯:componentsRestrictions實際上限制了特定國家/地區的結果。要將結果偏向,而不是(從其他國家的結果仍顯示,但較低的優先級),這樣做:

Grab sw and ne lat/lng here

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() { 
    //... 
}); 
相關問題