Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图在滚动“最大缩放”或“最小缩放级别”后会稍微移动_Javascript_Google Maps - Fatal编程技术网

Javascript 谷歌地图在滚动“最大缩放”或“最小缩放级别”后会稍微移动

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

我有一个简单的web应用程序,我在其中使用带有javascript的google地图。我在地图中设置了最小和最大缩放级别,如下所示:
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所建议的,您可以随时了解
实验版
发行版
的最新版本

 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
        }); 
但是,我建议通过更新您的代码调用的
googlemapoptions
对象属性名称,走在前面。查看下面的代码示例,您将看到在中,使用了
贴图类型控件
样式属性选项的前缀
google.maps
;注意,它不是
gmaps.MapTypeControlStyle
。像这样的小更新可以帮助您领先于未来的发布版本

 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
        }); 
贴图类型控件可能出现在以下样式选项之一中:

 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
        }); 
google.maps.MapTypeControlStyle.HORIZONTAL_BAR
将控件数组显示为水平条中的按钮,如谷歌地图所示。
google.maps.MapTypeControlStyle.DROPDOWN\u菜单
显示一个按钮控件,允许您通过下拉菜单选择地图类型。
google.maps.MapTypeControlStyle.DEFAULT
显示默认行为,该行为取决于屏幕大小,并且可能在未来版本的API中更改

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

函数initMap(){
var map=new google.maps.map(document.getElementById('map'){
缩放:12,
中心:{lat:-28.643387,lng:153.612224},
mapTypeControl:true,
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
位置:google.maps.ControlPosition.TOP\u中心
},
动物控制:对,
ZoomControl选项:{
位置:google.maps.ControlPosition.LEFT_CENTER
},
scaleControl:对,
街景控制:对,
街景控制选项:{
位置:google.maps.ControlPosition.LEFT_TOP
},
fullscreenControl:true
});
}

2件事;1) 请…你能发布一段独立的代码来帮助其他程序员重现问题吗?2)你什么时候意识到这种行为发生了变化?这种行为是否在平台/OSs之间保持一致?谢谢。您需要在问题的主体中添加代码,而不是作为注释,因为这会使阅读代码变得困难。它应该是您发布的代码,并使其他人能够解决问题。您还可以发布用于调用API的视图和代码吗?它可能与新的3.32版Maps JavaScript API中宣布的新tile render启动有关。如果您更喜欢旧渲染,可以使用v=3参数临时切换回,并加载。此解决方案将持续3个月。@xomena谢谢,你说得对。将地图降级到v3.30解决了这个问题。为什么这个解决方案只适用于3个月?因为谷歌有3个月的版本控制周期。5月份,他们将发布新版本,3.30版将被删除。请查看以了解更多详细信息。