我目前正在使用ReactJS + Nodejs应用程序,试图集成OpenLayers。我需要的是实时更改标记的GPS位置(通过socket.io)。
到目前为止,我想出了以下代码:
def check(the_list, *match):
return all(a in the_list for a in match)
if check(list1, match1, match2, match3):
return True
标记会移动,但是过渡会立即发生。有没有办法让它像“ CSS线性过渡”那样运动以使其看起来更逼真?
答案 0 :(得分:1)
使用计时器,您可以按照新旧位置之间的直线将移动分为几步,例如持续100个10毫秒的步幅
var line = new LineString([oldCoordinates, newCoordinates])];
var step = 0;
var key = setInterval( function() {
if (step < 100) {
step++;
marker.setGeometry(new Point(line.getCoordinateAt(step/100)));
} else {
clearInterval(key);
}
}, 10);
您也许还可以基于飞行动画示例https://openlayers.org/en/latest/examples/flight-animation.html