Подтвердить что ты не робот

Как программно изменить уровень масштабирования карт Google?

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 - глобальная переменная, установленная по умолчанию 7.

Теперь я хочу изменить уровень масштабирования этой карты, чтобы полностью изучить эту программу.

Каков способ сделать это без повторной инициализации карты?

ИЛИ повторно инициализирует принудительный?

4b9b3361

Ответ 1

Используйте метод setZoom() из класса google.maps.Map.

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

Ответ 2

Мой REP слишком мал, чтобы ответить.. но еще раз прокомментировал решение Alexanders: у меня была та же проблема, но выше не работало для меня во всех браузерах, потому что иногда map.setZoom() выполняется до карта сделана загрузка.

Обертка функции, подобной этой, заставит ее работать всегда:

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