Używam Google Maps API i funkcji wyszukiwania autouzupełniania. Obecnie musisz rozpocząć wpisywanie lokalizacji (miasto, województwo, zip, itp.), A następnie wybrać wynik z listy rozwijanej, aby mapa znalazła się w centrum tej lokalizacji. Chciałbym jednak zrobić ten głupi dowód i skonfigurować go tak, aby po wpisaniu nazwy miasta lub stanu i trafieniu "wprowadź" bez wybrania wyniku autouzupełniania, nadal będzie działać. Na przykład, jeśli ktoś wpisze "Nowy Jork" i uderzy "wprowadź" bez wybrania wyniku w menu rozwijanym, nadal będzie znajdować się w centrum Nowego Jorku.Google Maps API Wyszukiwanie autouzupełniania bez wybierania z listy rozwijanej
Zakładam, że jest to osiągnięte przez pobranie pierwszego wyniku z rozwijanego menu autouzupełniania, jeśli nie zostało wybrane ręcznie.
Dodałem detektor zdarzeń do przesłania formularza, ale nie wiem, jak przekazać pierwszy wynik do zmiennej "miejsce".
Oto mój kod:
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 = "";
});
};
A oto JSFiddle do eksperymentowania.
Działa świetnie, dziękuję! – user13286
Bez wątpienia najlepsze i najmądrzejsze rozwiązanie, jakie mogłem znaleźć w dowolnym wątku. Dobrze zrobione odkrycie tego hacka! –
Dziękujemy za udostępnienie. Twój kod jest genialny! –