Google maps api 3 google maps v3:zoom_在缩小范围时调用了两次

Google maps api 3 google maps v3:zoom_在缩小范围时调用了两次,google-maps-api-3,Google Maps Api 3,在下面的基本示例代码中,我使用以下代码捕获zoom_changed事件: google.maps.event.addListener(map, 'zoom_changed', function() { console.log(map.getZoom()); }); 如果我调用map.setZoom(30),我会将其放入控制台: > map.setZoom(30) > 30 > 21 也就是说,zoom_changed被触发两次,一次的值不正确。这给我的图书馆带来了一

在下面的基本示例代码中,我使用以下代码捕获zoom_changed事件:

google.maps.event.addListener(map, 'zoom_changed', function() {
    console.log(map.getZoom());
});
如果我调用map.setZoom(30),我会将其放入控制台:

> map.setZoom(30)
> 30
> 21
也就是说,zoom_changed被触发两次,一次的值不正确。这给我的图书馆带来了一些问题,我不知道为什么会发生这种情况。然而,我无法在其他一些使用V3API的项目上重现这个问题

奇怪的是,如果我在控制台中另外指定zoom_changed listener,而不是将其放入initialize中,我会得到值:21,21。所以答案就在那里

代码是:

<!DOCTYPE html>
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
html, body, #map-canvas {
    height: 100%;
    margin: 0px;
    padding: 0px
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var map;
function initialize() {
    var mapOptions = {
        zoom: 8,
        center: new google.maps.LatLng(-34.397, 150.644)
    };
    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

    google.maps.event.addListener(map, 'zoom_changed', function() {
        console.log(map.getZoom());
    });
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
    <body>
        <div id="map-canvas"></div>
    </body>
</html>

简单地图
html,正文,#地图画布{
身高:100%;
边际:0px;
填充:0px
}
var映射;
函数初始化(){
变量映射选项={
缩放:8,
中心:新google.maps.LatLng(-34.397150.644)
};
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
google.maps.event.addListener(映射'zoom_changed',函数(){
log(map.getZoom());
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);

我填写了一份错误报告:如果我调用map.getZoom(30),你是说
map.setZoom(30)
?@geocodezip:是的,谢谢。