【问题标题】:disable zooming dragging in Google maps by clicking on a button通过单击按钮禁用 Google 地图中的缩放拖动
【发布时间】:2012-01-02 11:59:02
【问题描述】:

我想在 disable() 函数中添加代码,以通过单击“禁用”按钮来禁用 Google 地图 API v3 中的拖动和缩放。

<script type="text/javascript">
   var map;

  function initialize() {
var uluru = new google.maps.LatLng(21, 57);
map = new google.maps.Map(document.getElementById("map"), {
  zoom: 6,
  center: uluru,
  mapTypeId: google.maps.MapTypeId.HYBRID
});
}


function disable(){

}

</script>


<body onload="initialize()" >

   <input type="button" id="next" value="disableZoomDrag" onclick="disable()">

</body>

【问题讨论】:

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


    【解决方案1】:

    @ScottE 的回答为我指明了使用map.setOptions() 的正确方向。但是,从API documentation 中,我发现有一组更优雅的选项可以设置。也许这些比答案更新,但它们对我来说效果很好。

    function disablePanningAndScrolling()
    {
        map.setOptions({
            zoomControl: false,
            gestureHandling: 'none'
        });
    }
    

    这将完全禁用缩放和平移。

    要恢复正常,只需将属性设置回默认值即可:

    function enablePanningAndScrolling()
    {
        map.setOptions({
            zoomControl: true,
            gestureHandling: 'greedy' // or 'cooperative'*
        });
    }
    

    *:如果页面不可滚动,则默认为贪婪,可滚动时为合作。选择您的应用程序中的任何一种情况。

    【讨论】:

      【解决方案2】:

      您可以在地图对象上使用setOptions() 方法:

      map.setOptions({draggable: false, zoomControl: false, scrollwheel: false, disableDoubleClickZoom: true});
      

      如果这不妨碍缩放,您始终可以将最小和最大缩放设置为当前缩放级别。

      还有disableDefaultUI 选项,它可能会考虑所有这些事件,但它可能会禁止点击现有元素。

      【讨论】:

      • 请注意,您也可以在启动地图对象的新实例时添加这些:var map = new google.maps.Map(mapElement, mapOptions); 其中mapOptions 将是您的选项:var mapOptions = {draggable: false, zoomControl: false, scrollwheel: false, disableDoubleClickZoom: true};
      猜你喜欢
      • 2018-05-18
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      相关资源
      最近更新 更多