Animation Openlayers适合反弹范围

Animation Openlayers适合反弹范围,animation,openlayers,extent,Animation,Openlayers,Extent,我尝试在两个范围之间设置动画,在动画中间增加缩放,以便在距离较远的位置之间移动时创建反弹或飞行效果。现在我正在使用view.fit(范围,{duration:2000})。问题是缩放在动画期间根本不会改变。当我从一个范围平移到另一个距离很远的范围时,你只会看到一堆瓷砖以非常低的缩放级别飞过。为了获得飞行效果,你需要将一个中心动画与两个缩放动画结合起来,并同时启动它们。您可以根据所需范围计算中心和缩放(myExtent)。差不多 var resolution = view.getResol

我尝试在两个范围之间设置动画,在动画中间增加缩放,以便在距离较远的位置之间移动时创建反弹或飞行效果。现在我正在使用view.fit(范围,{duration:2000})。问题是缩放在动画期间根本不会改变。当我从一个范围平移到另一个距离很远的范围时,你只会看到一堆瓷砖以非常低的缩放级别飞过。

为了获得飞行效果,你需要将一个
中心
动画与两个
缩放
动画结合起来,并同时启动它们。您可以根据所需范围计算中心和缩放(
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
    });

在官方动画示例()中,类似的内容也显示为“飞到伯尔尼”。

谢谢,但我没有使用中心,我希望在一定程度上适合地图。仅使用中心并不能使我达到理想的分辨率。您可以使用
ol.View#getResolutionForExtent
获得所需范围的分辨率。我正在更新我答案中的代码片段。很好,正是我所需要的。谢谢