Google Maps API V3 - 缩放动画行为

时间:2013-01-14 15:08:38

标签: google-maps-api-3

是否有可能检测并挂钩事件“喜欢”     onBeforeZoomChange和     onAfterZoomChange(= “ZOOM_CHANGED”)

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

1 个答案:

答案 0 :(得分:0)

无法拦截重绘地图的方法,但有一种方法可以拦截自定义叠加层的绘制,因为您可以定义自己绘制叠加层的函数。

cutom Overlay的draw-method将在必要时自动调用。

简单方法:在地图空闲之前不要重绘Overlay:

  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-method(将重绘重叠的内容)