Quiero guardar la posición actual donde el usuario está mirando y restaurar de nuevo después de algunos clics.obtener los límites latlng actuales?
¿Cómo obtengo los límites actuales de longitud lat para poder mapear.fitBounds en él?
Quiero guardar la posición actual donde el usuario está mirando y restaurar de nuevo después de algunos clics.obtener los límites latlng actuales?
¿Cómo obtengo los límites actuales de longitud lat para poder mapear.fitBounds en él?
Aquí está el código para capturar los límites del mapa actual, en el evento "bounds_changed"
google.maps.event.addListener(map, 'bounds_changed', function() {
try {
if(initialBounds == null) {
initialBounds = map.getBounds();
}
} catch(err) {
alert(err);
}
});
A continuación, puede volver el mapa el límite utilizando este código
google.maps.event.addDomListener(controlUI, 'click', function() {
// map.setCenter(home)
if(initialBounds != null) {
map.fitBounds(initialBounds);
}
});
getBounds()
en Google Maps API v3
Para obtener nuestra latitud y longitud necesitamos mover getBounds()
al bounds_changed
detector de eventos.
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 10,
center: new google.maps.LatLng(lat, lng),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
google.maps.event.addListener(map, 'bounds_changed', function() {
var bounds = map.getBounds();
var ne = bounds.getNorthEast();
var sw = bounds.getSouthWest();
console.log(ne.lat());
console.log(ne.lng());
console.log(sw.lat());
console.log(sw.lng());
});
Este evento se activa cuando los límites de la ventana gráfica han cambiado. Si tiene alguna llamada ajax, cada vez que cambia la posición del mapa, se activará la llamada ajax.
Por lo tanto, la mejor solución en ese caso es mover getBounds()
en idle
detector de eventos. Este evento se activa cuando el mapa queda inactivo después de hacer zoom.
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 10,
center: new google.maps.LatLng(lat, lng),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
google.maps.event.addListener(map, 'idle', function() {
var bounds = map.getBounds();
var ne = bounds.getNorthEast();
var sw = bounds.getSouthWest();
console.log(ne.lat());
console.log(ne.lng());
console.log(sw.lat());
console.log(sw.lng());
});
Esta discusión tiene una mejor Anser, para evitar múltiples incendios [Clic para responder] (http://stackoverflow.com/questions/4338490/google-map-event-bounds-changed-triggered-multiple -times-when-dragging) –