甚至Zoom In& Google地图奇数缩小

时间:2015-09-15 16:38:03

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

是否可以以2为增量放大并以3为增量缩小?基本上,我试图跳过某个缩放级别。示例:http://jsfiddle.net/j1sr3zho/

我正在尝试检测放大和缩小事件的时间,以便我可以达到我想要的效果,但是我收到Uncaught RangeError: Maximum call stack size exceeded错误。

google.maps.event.addListener(map, 'zoom_changed', function () {
    if (map.getZoom() > zoom) {
        map.setZoom(map.getZoom() + 2);
        console.log("zoomed in");
    } else if (map.getZoom() < zoom) {
        map.setZoom(map.getZoom() - 3);
        console.log("zoomed out");
});

如果可能,我也需要它来处理移动版Google地图。

1 个答案:

答案 0 :(得分:2)

这里的问题是,即使您在地图上设置了缩放,也会触发zoom_changed侦听器。您应该尝试检测zoom_changed是否由鼠标事件触发,或者设置标志以防止递归。

查看this updated jsfiddle,通过设置标志来阻止递归:

{
    if (flag){
        flag=false;
        //zoom logic
        map.setZoom(newZoomLevel);
    }
    flag=true;
}