我有简单的网络应用程序,我正在使用谷歌地图与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
});
我的代码中没有处理缩放事件。设置了最小和最大缩放级别后,可以在鼠标滚动时重现问题。我昨天才发现这个问题。
答案 0 :(得分:1)
我建议您更新代码,以便将来可以避免这些问题。使用最新的对象名称将帮助您避免因弃用而errors and/or warnings (如这些)。根据@Xomena的建议,您可以与experimental
和release
版本here保持同步。
但是,我建议通过更新代码调用的Google MapOptions
对象属性名称来超越曲线。查看下面的代码示例,您会在Maps JS API documentation中看到使用google.maps
样式属性选项的前缀Map Type control
;请注意,这不是gmaps.MapTypeControlStyle
。像这样的小更新可以帮助您保持领先于未来的版本。
“地图类型”控件可能会出现在以下某个样式选项中:
google.maps.MapTypeControlStyle.HORIZONTAL_BAR
将控件数组显示为水平栏中的按钮,如Google地图上所示。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>