是否有可能检测并挂钩“像” onBeforeZoomChange 和 onAfterZoomChange(="zoom_changed") 的事件
在地图上分层并绑定到适当标记的数百个 DIV(标签)存在问题。当地图动画(缩小)时,DIV 改变了它们的大小两次,然后动画变得更小。这似乎是一个很大的性能问题和非常糟糕的行为。是否可以在缩放开始之前隐藏这些 DIV 并在 zoom_changed 中显示它们?
是否有可能检测并挂钩“像” onBeforeZoomChange 和 onAfterZoomChange(="zoom_changed") 的事件
在地图上分层并绑定到适当标记的数百个 DIV(标签)存在问题。当地图动画(缩小)时,DIV 改变了它们的大小两次,然后动画变得更小。这似乎是一个很大的性能问题和非常糟糕的行为。是否可以在缩放开始之前隐藏这些 DIV 并在 zoom_changed 中显示它们?
没有办法拦截重绘地图的方法,但是有办法拦截自定义Overlays的绘制,因为绘制Overlay的函数是你自己定义的。
任何需要的时候都会自动调用cutom Overlay的draw-method。
简单的方法:在地图空闲之前不要重绘覆盖:
YourOverlayClass.prototype.draw = function(idle) {
if(!idle){
var _this=this;
google.maps.event.addListenerOnce(this.map,'idle',
function(){_this.draw(true);});
/*optionally you may hide the overlay here*/
return;
}
/**
* your drawing-instructions here
**/
/*show the overlay here when it has been hidden before*/
}
draw 的自动调用将在没有参数的情况下完成,建议检查是否提供了参数,
是时:它重绘覆盖。
当 no 时:它为地图的空闲事件添加一个侦听器,其中将使用参数调用绘制方法(将重绘覆盖)