1

我试图在两个范围之间制作动画,在动画中间增加缩放,以便在相距很远的位置之间移动时产生弹跳或飞行效果。现在我正在使用 view.fit(extent, {duration: 2000})。问题是缩放在动画期间根本没有改变。当我从一个范围平移到另一个相距很远的范围时,您只会看到一堆瓷砖以非常低的缩放级别飞过。

4

1 回答 1

3

对于飞行效果,您需要将一个center动画与两个zoom动画结合起来,并同时启动它们。myExtent您可以从所需范围 ( )计算中心和缩放。就像是

    var resolution = view.getResolutionForExtent(myExtent);
    var zoom = view.getZoomForResolution(resolution);
    var center = ol.extent.getCenter(myExtent);
    view.animate({
      center: center,
      duration: duration
    });
    view.animate({
      zoom: zoom - 1,
      duration: duration / 2
    }, {
      zoom: zoom,
      duration: duration / 2
    });

在官方动画示例( http://openlayers.org/en/latest/examples/animation.html)中,类似的东西也显示为“Fly to Bern” 。

于 2017-06-26T19:44:58.957 回答