2015-08-25 54 views
0

在我使用Google Maps API v3的javascript代碼中,我嘗試設置自動完成功能的邊界,只要在輸入字段中輸入一個字母, HTML),相同的自動完成提示我可以在邊界區域找到地址,但是如果我鍵入超出邊界限制的城市名稱,我也會爲該城市和其他城市提供建議。有沒有辦法避免這種情況?我想只爲我的「界限」提供建議。谷歌地圖v3 - 限制功能可以工作的區域

下面是一段代碼:

init = function() { 

    var latlng = new google.maps.LatLng(40.635636, 17.942414); 
    var mapOptions = { zoom: 13, center: latlng, minZoom: 10, maxZoom: 16}; 

    default_bounds = new google.maps.LatLngBounds();  
    default_bounds.extend(new google.maps.LatLng(40.635636-0.33, 17.942414-0.33)); 
    default_bounds.extend(new google.maps.LatLng(40.635636+0.33, 17.942414+0.33)); 

    console.log("Initialing map at: 40.635636, 17.942414"); 

    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

    originAutocomplete = new google.maps.places.Autocomplete(document.getElementsByName("origin")[0], {types: ['geocode']}); 
    destinationAutocomplete = new google.maps.places.Autocomplete(document.getElementsByName("destination")[0], {types: ['geocode']}); 

    originAutocomplete.setBounds(default_bounds); 
    destinationAutocomplete.setBounds(default_bounds); 

} 

圖像正確:(顯示在普利亞大區唯一的地方意大利南部) correct image 不正確的圖像:(很多不同地區的演出場所) Incorrect

+1

這是不可能的,邊界屬性不是限制,它只是一個選擇在邊界內選擇結果的選項 –

回答

1

根據documentation,有4種設置自動完成的偏差和搜索區域邊界的方法,它們是
*設置創建自動完成對象的邊界克拉。
*更改現有自動填充的邊界。
*將邊界設置爲地圖的視口。
*限制搜索到特定的國家。

由於前3個選項只會產生偏差,但不會限制結果,因此只能過濾掉其他國家的信息,而不能過濾來自同一個國家/地區的城市。

請注意,您可以通過播放返回對象來修改結果,但這違反了ToS。

+0

你知道如果我激怒ToS會發生什麼嗎? – Mitro