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