使用 Openlayers (v6.1.1.) 我正在尝试在几个多边形之间创建简单的FlyTo动画。当它们之间的距离有点小时,FlyTo 动画效果很好,但随着距离的增加,用户体验会下降。
在较大的距离上,我只是看到在低变焦下快速平移地图。我尝试使用此链接中的ahocevar答案,但没有达到预期的效果。
按照说明,我将一个中心动画与两个缩放动画组合在一起并同时启动它们。例子:
let view = map.getView();
let extentOfPolygon = feature.getGeometry().getExtent();
let resolution = view.getResolutionForExtent(extentOfPolygon);
let zoom = view.getZoomForResolution(resolution);
let center = ol.extent.getCenter(extentOfPolygon);
view.animate({
center: center,
duration: duration
});
view.animate({
zoom: zoom - 1,
duration: duration / 2
}, {
zoom: zoom,
duration: duration / 2
});
当多边形在附近时,此 FlyTo 动画效果很好,但随着距离的增加,FlyTo 动画正在转变为跨地图的快速平移。
我创建了用于测试目的的小应用程序。当我们单击列表项时,地图将动画并缩放到单击的字段。例如,当真棒时,另一个和超级场在附近,并且 FlyTo 动画按预期工作,但是当我们从超级场点击到史诗场(位于最南端。然后地图只是快速平移到位置)。
所以,我的问题是这个。是否可以独立于多边形位置为多边形实现相同的 FlyTo 效果(传单有这个很好的设置https://regionbound.com/leaflet-fly-demo)
这是 jsfiddle 示例: https ://jsfiddle.net/Svinjica/1kjfp4ds/