2012-09-17 21 views
23
function displayMapAndClick() 
    { 
     var latlng = new google.maps.LatLng (29.0167, 77.3833); 
     var myOptions = 
     { 
      zoom:zm, 
      center:latlng, 
      mapTypeId:google.maps.MapTypeId.ROADMAP 
     }; 

     map = new google.maps.Map (document.getElementById ("map"), myOptions); 
     directionsDisplay.setMap (map); 
    } 

Donde zm es una variable global establecida en el valor predeterminado 7.¿Cómo cambiar el nivel de zoom de Google Maps programáticamente?

Ahora, deseo cambiar el nivel de zoom de este mapa a través de este programa.

¿Cuál es la manera de hacerlo sin reiniciar el mapa?

¿O está reiniciando obligatoriamente?

Respuesta

45

Utilice el método setZoom() de la clase google.maps.Map.

var mapOptions = { 
    /* Initial zoom level */ 
    zoom: 8 
    ... 
}; 
map = new google.maps.Map(..., mapOptions); 
/* Change zoom level to 12 */ 
map.setZoom(12); 
10

Mi representante es demasiado baja para responder .. pero más comentarios a sollution Alexanders': Yo tenía el mismo problema, pero lo anterior no funciona para mí en todos los navegadores porque a veces el map.setZoom() se ejecuta antes de que el mapa termine de cargarse.

Envolver la función como ésta hará que funcione siempre:

... 
map = new google.maps.Map(..., mapOptions); 
/* Change zoom level to 12 */ 
google.maps.event.addListenerOnce(map, 'bounds_changed', function() { 
    map.setZoom(12); 
}); 
+0

envoltura en un detector de eventos como @publicJorn explicó fue lo que funcionó para mí. gracias – CIRCLE

+0

@ La solución de publicJorn funcionó también para mí, ¡gracias! – lookdad

Cuestiones relacionadas