如何以编程方式更改Google地图的缩放级别?

时间:2012-09-17 11:41:36

标签: javascript google-maps google-maps-api-3

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的全局变量。

现在,我希望通过此程序更改此地图的缩放级别。

如果不重新初始化地图,这样做的方法是什么?

或者是重新初始化必修课?

2 个答案:

答案 0 :(得分:52)

使用google.maps.Map课程中的setZoom()方法。

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

答案 1 :(得分:13)

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