我嘗試使用谷歌地圖API自動完成,但有它和地理編碼API,例如之間存在一些差異:谷歌地圖API自動完成地理編碼X
在自動完成API,我想搜索地址「Rua Tiradentes,1020,Ibirubá」,當我在列表中選擇時,地址組件「street_number」沒有出現,這是這個地址和其他地址的問題。
讓我們嘗試用地理編碼API:
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': 'Rua Tiradentes, 1020, Ibirubá' }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.log(results);
} else {
alert("Geocoder failed due to: " + status);
}
});
現在,street_number是address_components裏面,有沒有解決辦法或谷歌自動完成是不是可靠?
這裏是放置代碼:
var b = new google.maps.places.Autocomplete(myInput);
google.maps.event.addListener(b, 'place_changed', function() {
console.log(b.getPlace());
})
文檔不是很清楚:*以下類型**可能會在地點搜索結果中返回**,除了上面表1中的類型。*請參閱https://developers.google.com/places/documentation/supported_types#table2因此,如果*可能會被返回*,我們並不真正知道它何時以及爲何會/將不會被退回。 – MrUpsidown 2014-10-29 16:19:56
基本上,地理編碼文檔也非常模糊:*除上述之外,地址組件**可能包含以下類型*。請參閱:https://developers.google.com/maps/documentation/geocoding/ #Types – MrUpsidown 2014-10-29 16:25:33
我報告過地圖API的錯誤,它應該像Geocoder API一樣。我寫了一個回退,如果street_number爲空,獲取輸入文本並進行地理編碼請求 – Alexandre 2014-10-29 16:54:41