Google map v3 zoom end

时间:2011-09-01 10:18:49

标签: google-maps

我的谷歌地图v3 zoom_change有问题,因为它无法完美解决我的需求。

我有2个未满足的要求:

  • 我需要获取界限并显示界限之后用户点击缩放控件并在地图中重新调整缩放。 zoom_change方法在>重新调整缩放之前执行,并且边界不是我需要的边界。

  • 每次调用zoom_change方法,例如,每当我执行 fitBounds setZoom 时。当单击zoomcontrol或移动鼠标滚轮时,我只需要它。

v3 API中是否有针对这些问题的解决方案?

3 个答案:

答案 0 :(得分:7)

该事件被称为zoom_changed(非zoom_change)。在缩放更改后调用此事件的事件处理程序。将用户引起的缩放变化从程序引起的变焦转移到实际上并不是直截了当的。一种可能的解决方案是维护一个“全局”变量,说userZoom,表示用户是否触发了缩放。

var userZoom = true; // initial value: be prepared for user action
// Install listener
google.maps.event.addListener(Map.self, 'zoom_changed', function() {
    if (userZoom) {      
        // the user changed zoom: do what should be done
    }
    else {
        // zoom change caused by a program action: ignore
    }
    userZoom = true;  // be prepared for the user zoom action    
});

在调用任何更改缩放的程序操作之前,请设置userZoom = false,例如

userZoom = false;
map.setZoom(9);

答案 1 :(得分:5)

听取空闲事件。

来自Google Maps Javascript API V3 Reference

  

idle:在平移或地图变为空闲时触发此事件   变焦。

答案 2 :(得分:0)