Openlayers适合弹跳

时间:2017-06-26 15:51:41

标签: animation openlayers extent

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

1 个答案:

答案 0 :(得分:1)

对于飞行效果,您需要将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)中也显示为“飞到伯尔尼”。