diff --git a/src/front/map.js b/src/front/map.js index 35793c0..874a008 100644 --- a/src/front/map.js +++ b/src/front/map.js @@ -251,8 +251,7 @@ const createMap = target => const color = network.lines[course.line].color; const style = getCourseStyle(color); - style.getImage().setRotation(rotation * Math.PI / 16); - rotation += 1; + style.getImage().setRotation(course.angle); ctx.setStyle(style); const point = new Point(course.position); diff --git a/src/tam/simulation.js b/src/tam/simulation.js index 22767d8..b24dfa3 100644 --- a/src/tam/simulation.js +++ b/src/tam/simulation.js @@ -128,6 +128,8 @@ const updateFromTam = async (courses) => id, line: course.line, finalStop: course.finalStop, + position: [0, 0], + angle: 0, }; arriveAtStop(courses[id], nextStop); @@ -210,11 +212,17 @@ const updatePositions = (courses, time) => t * nextPoint[0] + (1 - t) * previousPoint[0], t * nextPoint[1] + (1 - t) * previousPoint[1], ]; + + course.angle = Math.atan2( + previousPoint[1] - nextPoint[1], + nextPoint[0] - previousPoint[0], + ); } } else { const currentNode = network.stops[course.currentStop]; + course.position = turf.toMercator([ currentNode.lon, currentNode.lat