3

我有有一個使用谷歌的地方API自動完成輸入字段一個簡​​單的Grails應用程序。代碼如下谷歌的地方自動完成限制類型和隱藏鍵

<label for="city"> 
    <input id="city" name="city"> 
</label> 
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places&key=myKey"></script> 
<script> 
    var input = document.getElementById('city'); 
    var searchBox = new google.maps.places.SearchBox(input); 
</script> 

這工作正常,但這提供了諸如城市,州,國家的信息。我只需要城市和州/州,我不想要國家。

Boston, MA, United States - Is the results that I get and i Need it to look like 

Boston, MA Or MA 

有沒有方法可以將模板添加到我得到的響應中? (我需要城市和國家從世界各地,但在響應任何國家)

我是新來這個API,提前

+0

你有2個問題在這裏。請在單獨問題中詢問保護密鑰,以便分開回答。 – spiv

+0

完成,修改我的問題。另一個問題是在這個[鏈接](http:// stackoverflow。com/questions/39657161/google-places-autocomplete-hide-key) – Visahan

回答

1

感謝那麼您可以篩選google-map search結果,以特定國家相當容易。

只是傳遞一個option您自動完成功能類似下面

//options for restricting the search result to "US" 
var options = { 
    types: ['(cities)'], 
    componentRestrictions: {country: "us"} 
}; 

//Search box code 
var input = document.getElementById('city'); 
var searchBox = new google.maps.places.Autocomplete(input, options); 

官方國家代碼參考: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#AM

正如維沙爾提到,他希望搜索產生了唯一的城市整個世界,恐怕只有谷歌地圖沒有這樣的設施只給所有國家的城市名稱在搜索結果

有一件事我們可以做的是改變後 用戶的輸入值(從它刪除國家)選擇地址。

添加以下代碼:

//Search box code 
var input = document.getElementById('city'); 
var searchBox = new google.maps.places.Autocomplete(input); 

//adding event listener over the input box 
google.maps.event.addListener(searchBox, 'place_changed', function() { 
     var place = searchBox.getPlace(); 

     //remove the country part from search result 
     var rquiredAddress = place.formatted_address.slice(0, place.formatted_address.lastIndexOf(","));; 
     $("#city").val(rquiredAddress); 
}); 

只是一個意見,你應該保持全國部分搜索,因爲 可能在不同國家類似的城市名的數量和它 會混淆用戶。

+0

我的要求不限於一個國家。我在做一些研究時確實找到了這個解決方案。我需要得到世界各地的城市和國家的狀態。只是我不希望國家名稱在結果中。最初我使用了gd.geobytes.com/AutoCompleteCity api,它有一個模板參數,我們可以根據需要設置城市和州。但它有一個混合的上下文加載問題,所以我看着谷歌的地方api。目前我正在嘗試查找類似於geobytes的請求的參數,如果有的話。 – Visahan

+0

我已經更新了我的答案。它不完全是你正在尋找,但周圍的方式。 –

1

不幸的是,這還不是可通過API。您只能手動執行此操作或創建一個將API響應過濾爲自定義文本的函數。

參考文獻:

你也可以檢查Places API Feature request,看看是否已經有此掛起功能要求。如果不是,您可以提交Feature request

希望這會有所幫助!

相關問題