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