web-dev-qa-db-fra.com

Comment changer le niveau de zoom de Google maps par programmation?

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); 
    }

zm est une variable globale définie par défaut 7.

Maintenant, je souhaite changer le niveau de zoom de cette carte à travers ce programme.

Comment faire cela sans réinitialiser la carte?

OU la réinitialisation est-elle obligatoire?

27
Aquarius_Girl

Utilisez la méthode setZoom() de google.maps.Map classe.

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

En plus de la sollicitation d'Alexanders: j'ai eu le même problème, mais ce qui précède ne fonctionnait pas pour moi dans tous les navigateurs car parfois map.setZoom () est exécuté avant le chargement de la carte.

Envelopper la fonction comme ceci la fera toujours fonctionner:

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