2

是否有可能检测并挂钩“像” onBeforeZoomChange 和 onAfterZoomChange(="zoom_changed") 的事件

在地图上分层并绑定到适当标记的数百个 DIV(标签)存在问题。当地图动画(缩小)时,DIV 改变了它们的大小两次,然后动画变得更小。这似乎是一个很大的性能问题和非常糟糕的行为。是否可以在缩放开始之前隐藏这些 DIV 并在 zoom_changed 中显示它们?

4

1 回答 1

0

没有办法拦截重绘地图的方法,但是有办法拦截自定义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 时:它为地图的空闲事件添加一个侦听器,其中将使用参数调用绘制方法(将重绘覆盖)

于 2013-01-14T22:20:40.773 回答