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