Sto utilizzando l'API di Google Maps e la funzione di ricerca del completamento automatico. Al momento, è necessario iniziare a digitare una posizione (città, stato, zip, ecc.) E quindi selezionare un risultato dal menu a discesa per centrare la mappa in quella posizione. Tuttavia, mi piacerebbe rendere questo stupido e configurarlo in modo che se qualcuno digita solo una città o solo uno stato e preme "entra" senza selezionare un risultato di completamento automatico, funzionerà comunque. Ad esempio, se qualcuno digita "New York" e preme "entra" senza selezionare un risultato nel menu a discesa, sarà comunque centrato su New York.API di Google Maps Completa la ricerca senza selezionare dal menu a discesa
Suppongo che ciò avvenga afferrando il primo risultato dal menu a discesa Autocomplete se non si è selezionato manualmente.
Ho aggiunto un listener di eventi per l'invio del modulo, ma non sono sicuro di come passare il primo risultato nella variabile "luogo".
Ecco il mio codice:
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 = "";
});
};
Ed ecco un JSFiddle per la sperimentazione.
funziona bene, grazie! – user13286
Senza dubbio la soluzione migliore e più intelligente che potessi trovare in qualsiasi thread. Ben fatto scoprendo questo trucco! –
Grazie per aver condiviso. Il tuo codice è geniale! –