繁体   English   中英

滚动最大缩放或最小缩放级别后,谷歌地图略微移动

[英]Google map slightly moves after scrolling max zoom or min zoom level

我有一个简单的网络应用程序,我在其中使用带有 javascript 的谷歌地图。 我在地图中设置了最小和最大缩放级别,如下所示: this.map.setOptions({ minZoom:3,maxZoom: 17 }); 我观察的是滚动后,即放大或缩小并达到最大或最小缩放级别,地图稍微移动/滑动而不是停止进一步放大或缩小。 以前它工作正常。为什么会发生这种变化? 有没有办法在达到最大或最小缩放级别后停止地图移动? 这就是我将地图加载到 div 的方式。

 self.map = new gmaps.Map(document.getElementById('map'), {         mapTypeControlOptions: {
                position: gmaps.ControlPosition.TOP_RIGHT,
                style: gmaps.MapTypeControlStyle.HORIZONTAL_BAR
            },
            fullscreenControl: false,
            backgroundColor: '#F7F7F7',
            clickableIcons: false,
            streetViewControl: false
        }); 

我的代码中没有处理缩放事件。设置最小和最大缩放级别后,可以在鼠标滚动时重现问题。 我昨天才观察到这个问题。

我建议更新您的代码,以便将来避免此类问题。 使用最新的对象名称将帮助您避免由于弃用而导致的错误和/或警告(类似这些)。 正如@Xomena 所建议的,您可以在此处了解最新的experimentalrelease版。

但是,我建议通过更新代码调用的Google MapOptions对象属性名称来领先于曲线。 查看下面的代码示例,您将看到在Maps JS API 文档中,使用了Map Type control样式属性选项的前缀google.maps 请注意,这不是gmaps.MapTypeControlStyle 像这样的小更新可帮助您保持领先于未来的发布版本。

地图类型控件可能会出现在以下样式选项之一中:

google.maps.MapTypeControlStyle.HORIZONTAL_BAR将控件数组显示为水平栏中的按钮,如谷歌地图所示。 google.maps.MapTypeControlStyle.DROPDOWN_MENU显示单个按钮控件,允许您通过下拉菜单选择地图类型。 google.maps.MapTypeControlStyle.DEFAULT显示默认行为,这取决于屏幕大小,并且可能会在 API 的未来版本中发生变化。

<body>
<div id="map"></div>
<script>
  function initMap() {
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 12,
      center: {lat: -28.643387, lng: 153.612224},
      mapTypeControl: true,
      mapTypeControlOptions: {
          style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
          position: google.maps.ControlPosition.TOP_CENTER
      },
      zoomControl: true,
      zoomControlOptions: {
          position: google.maps.ControlPosition.LEFT_CENTER
      },
      scaleControl: true,
      streetViewControl: true,
      streetViewControlOptions: {
          position: google.maps.ControlPosition.LEFT_TOP
      },
      fullscreenControl: true
    });
  }
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
</body>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM