我有OL3地图应用程序,该应用程序使用实验性map.beforeRender事件对基于GPS航向数据的自动视图旋转进行动画处理。
现在,我想升级到ol 4,我发现beforeRender函数不再存在。
map.beforeRender(function(map, frameState) {
if (frameState !== null) {
// use sampling period to get a smooth transition
var m = frameState.time - deltaMean * 1.5;
m = Math.max(m, previousM);
previousM = m;
// interpolate position along positions LineString
var c = positions.getCoordinateAtM(m, true);
var view = frameState.viewState;
if (c) {
view.center = getCenterWithHeading(c, -c[2], view.resolution);
view.rotation = -c[2];
currentRotation = -c[2];
rotateMap(radToDeg(view.rotation));
marker.setPosition(c);
}
}
return true; // Force animation to continue
});
那么,如果今天我升级到OL4,还有什么选择?在哪里实现此功能以旋转视图?
答案 0 :(得分:1)
changelog for OL4说您应该使用view.animate():
已弃用的
ol.animation
函数和map.beforeRender()
方法已被删除。请改用view.animate()
。
因此您可以使用以下方式旋转:
view.animate({
rotation: view.getRotation() - Math.PI / 2,
easing: ol.easing.easeIn
});
animation example(游览按钮)还显示了如何在间隔函数中使用此功能