Ciao a tutti,
sto cercando di integrare un Places Search con la possibilità di variare la posizione di visualizzazione della mappa e relativi risultati generati tramite una input text presente nella pagina. Ovviamente la input text contiene l'indicazione della nuova località.
Ecco il codice che sto utilizzando:
Questo codice mi sposta correttamente la mappa quando inserisco la nuova località, ma non mi vengono rigenerati i Places inerenti alla nuova località, ma rimangono quelli inseriti di base.codice:<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script> <script> var map, placesList; var geocoder; function initialize() { geocoder = new google.maps.Geocoder(); var pyrmont = new google.maps.LatLng(44.720514, 10.562515); map = new google.maps.Map(document.getElementById('map-canvas'), { mapTypeId: google.maps.MapTypeId.ROADMAP, center: pyrmont, rankBy: google.maps.places.RankBy.DISTANCE, zoom: 17 }); var request = { location: pyrmont, radius: 5000, types: ['store'] }; placesList = document.getElementById('places'); var service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback); } function codeAddress() { var address = document.getElementById('address').value; geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ // map: map, mapTypeId: google.maps.MapTypeId.ROADMAP, //center: pyrmont, rankBy: google.maps.places.RankBy.DISTANCE, zoom: 17, position: results[0].geometry.location }); } else { alert('CHE CAZZO HAI SCRITTO PORCO DIO: ' + status); } }); var request = { location: position, radius: 5000, types: ['store'] }; placesList = document.getElementById('places'); var service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback); } function callback(results, status, pagination) { if (status != google.maps.places.PlacesServiceStatus.OK) { return; } else { createMarkers(results); if (pagination.hasNextPage) { var moreButton = document.getElementById('more'); moreButton.disabled = false; google.maps.event.addDomListenerOnce(moreButton, 'click', function() { moreButton.disabled = true; pagination.nextPage(); }); } } } function createMarkers(places) { var bounds = new google.maps.LatLngBounds(); for (var i = 0, place; place = places[i]; i++) { var image = { url: place.icon, size: new google.maps.Size(71, 71), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(17, 34), scaledSize: new google.maps.Size(25, 25) }; var marker = new google.maps.Marker({ map: map, icon: image, title: place.name, position: place.geometry.location }); placesList.innerHTML += '[*]' + place.name + ''; bounds.extend(place.geometry.location); } map.fitBounds(bounds); } google.maps.event.addDomListener(window, 'load', initialize); </script>
Dove sto sbagliando?
Grazie

Rispondi quotando