我也跟着下面的教程:谷歌的地方自動完成沒有返回正確的地方
https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform
而且,我寫了生成的代碼對谷歌的下列實例放置自動完成(我如何使用Node.js與browserify所以它看起來有點不同):
enableAutoCompleteForElement: function(aDomElement) {
var self = this;
// The geocode type restricts the search to geographical location types.
GoogleMapsLoader.KEY = ArbitratorConfig.google_api_key;
GoogleMapsLoader.LIBRARIES = ['places'];
GoogleMapsLoader.SENSOR = false;
console.log("Google client id: " + ArbitratorConfig.google_client_id);
GoogleMapsLoader.load(function(google) {
self.autocomplete = new google.maps.places.Autocomplete(aDomElement,
{ types: ['geocode'] });
google.maps.event.addListener(self.autocomplete, 'place_changed', function() {
// When the user selects an address from the dropdown, this will fire.
var place = self.autocomplete.getPlace();
});
});
}
這對大多數應用程序工作得很好。不過,我注意到它不如Google日曆捆綁的自動完成地點那麼精確。例如,如果我在Google日曆中創建活動並在「布盧明頓冰上花園」的位置輸入中進行搜索,它將(可能取決於您的位置開始)返回「布魯明頓冰上花園,西98街,明尼阿波利斯,明尼蘇達州,美國「。但是,如果我使用我的客戶執行相同的搜索,它不會提供此結果。我能得到的最接近的是'美國明尼蘇達州布盧明頓'。
我覺得我錯過了圖書館的一部分,或者我錯誤地告訴它做了一些它不應該做的事情。我希望能夠檢索在Google商家信息中註冊的任何類型的地點,而不僅僅是城市,州或國家(目前它似乎是自動完成的)。