在地图上调用fitBounds函数时,不要触发'zoom_changed'事件

Enc*_*PTL 10 google-maps google-maps-api-3 dom-events

有没有办法阻止zoom_change事件因fitBounds()而发生?

我有一个问题,我需要在映射缩放更改时从客户端搜索服务器,但每次调用fitBounds()时都会导致zoom_change触发,导致客户端在服务器上执行另一次搜索.我只对用户完成的zoom_change感兴趣,而不是使用fitBounds以编程方式完成.

geo*_*zip 8

在程序中执行fitBounds时,请设置全局标志.触发zoom_changed事件时,如果设置了标志,请清除它,否则将请求发送到服务器.


Abr*_*ram 5

经过许多令人沮丧的小时,这是我的解决方案:

  var tiles_listener = google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
    var zoom_listener = google.maps.event.addListener(map, 'zoom_changed', function() {
      reloadMarkers();
    });
  });
Run Code Online (Sandbox Code Playgroud)

需要注意的是我打电话addListenerOncetilesloaded,以确保zoome_changed听者只加一次,第一次后fitBounds完成。