在缩放时不要触发自定义图块叠加

时间:2015-02-24 10:00:02

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

我使用Google Maps API v3获得了自定义图块叠加设置。但是,当多个并发用户处于活动状态时,为其生成图像的后端不足以处理所有调用。因此,在很多方面,我试图减少地图请求的切片数量。还有一个我无法想象的优化:

当用户双击缩放或使用缩放控件时,地图会重新触发请求新图块图像的图块叠加层。但是,如果用户在磁贴已加载之前触发缩放按钮或再次双击,则这些都是浪费的呼叫。所以我想要做的是建立一个延迟,在触发新的平铺图像之前等待x秒。

使用当前事件监听器(zoom_changed,dbl_click,click),我似乎无法阻止谷歌地图触发新的图像切片。看起来当zoom_changed事件触发时,瓷砖已经被请求了。所以我有点想办法停止触发getTileUrl。我已经知道如何重新触发它,我只是想知道在用户使用缩放时停止它的方法。

任何人都知道如何解决这个问题?

我使用此实现作为基础: https://developers.google.com/maps/documentation/javascript/examples/maptype-image-overlay

1 个答案:

答案 0 :(得分:1)

Google的某个人向我指出了正确的方向。经过一些研究,我发现了:

google.maps.event.addDomListener(map, "zoom_changed", function () {
  map.overlayMapTypes.setAt(0, null);
}

解决了我的问题。

这允许我停止叠加触发器,所以我现在可以随时重新触发它。