【问题标题】:How to change the zoom level of Google maps programmatically?如何以编程方式更改谷歌地图的缩放级别?
【发布时间】:2012-09-09 14:55:33
【问题描述】:
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 的全局变量。

现在,我想通过这个程序改变这张地图的缩放级别。

在不重新初始化地图的情况下如何做到这一点,或者重新初始化地图是强制性的?

【问题讨论】:

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


    【解决方案1】:

    使用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);
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 正如@publicJorn 解释的那样,包装在一个事件监听器中对我有用。谢谢
      • 这对我有用,因为我在地图加载到页面后对地图对象进行了更改。谢谢!
      猜你喜欢
      • 2012-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多