我正在使用Google Maps API和自動填充搜索功能。目前,您必須開始輸入位置(城市,州,郵編等),然後從地圖的下拉菜單中選擇一個結果,以便在該位置居中。然而,我想做出這種傻瓜證明,並設置它,以便如果某人只鍵入一個城市或只是一個州,並在未選擇自動填充結果的情況下點擊「輸入」,它仍然可以工作。例如,如果某人鍵入「紐約」並點擊「輸入」,而沒有在下拉菜單中選擇結果,它仍將以紐約爲中心。Google Maps API自動完成搜索沒有從下拉列表中選擇
我假設這是通過從自動完成下拉菜單抓取第一個結果來完成的,如果沒有手動選擇。
我已經爲提交表單添加了一個事件偵聽器,但不知道如何將第一個結果傳遞到「place」變量。
這裏是我的代碼:
function searchBar(map) {
var input = document.getElementById('search-input');
var searchform = document.getElementById('search-form');
var place;
var options = {componentRestrictions: {country: 'us'}};
var autocomplete = new google.maps.places.Autocomplete(input, options);
//Add listener to detect autocomplete selection
google.maps.event.addListener(autocomplete, 'place_changed', function() {
place = autocomplete.getPlace();
center = new google.maps.LatLng(place.geometry.location.lat(),place.geometry.location.lng());
map.setCenter(center);
map.setZoom(5);
});
//Add listener to search
searchform.addEventListener('submit', function() {
center = new google.maps.LatLng(place.geometry.location.lat(),place.geometry.location.lng());
map.setCenter(center);
map.setZoom(5);
});
//Reset the inpout box on click
input.addEventListener('click', function(){
input.value = "";
});
};
這裏是一個實驗JSFiddle。
偉大的作品,謝謝! – user13286
毫無疑問,我可以在任何線程中找到最好和最聰明的解決方案。幹得好,發現這個黑客! –
感謝您的分享。你的代碼很棒! –