Openlayers 适合弹跳的范围
Openlayers fit extent with bounce
我正在尝试在两个范围之间制作动画,并在动画中间增加缩放比例,以在相距很远的位置之间创建弹跳或飞行效果。现在我正在使用 view.fit(extent, {duration: 2000})。问题是缩放在动画期间根本没有改变。当我从一个范围平移到相距很远的另一个范围时,您只会看到一堆瓷砖以非常低的缩放级别飞过。
对于飞行效果,您需要将一个 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
});
类似的东西在官方动画示例中也显示为 "Fly to Bern" (http://openlayers.org/en/latest/examples/animation.html)。
我正在尝试在两个范围之间制作动画,并在动画中间增加缩放比例,以在相距很远的位置之间创建弹跳或飞行效果。现在我正在使用 view.fit(extent, {duration: 2000})。问题是缩放在动画期间根本没有改变。当我从一个范围平移到相距很远的另一个范围时,您只会看到一堆瓷砖以非常低的缩放级别飞过。
对于飞行效果,您需要将一个 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
});
类似的东西在官方动画示例中也显示为 "Fly to Bern" (http://openlayers.org/en/latest/examples/animation.html)。