Could be an algorithm issue.
used
var markers = new Map(); (for markers)
var routes = new Array(); (for lines from pt a to b and etc)
const step = (pointsObj) => {
if (pointsObj.i < routes.length) {
if (routes.length > 1)
// move the user along the line by 1 step ()
var pointA = routes[pointsObj.i];
var pointB = routes[pointsObj.i + 1];
// user moving gradually to the next point
userMarker.setLatLng(
new L.LatLng(
userMarker.getLatLng().lat + (pointB.lat - pointA.lat) / maxNumSteps,
userMarker.getLatLng().lng + (pointB.lng - pointA.lng) / maxNumSteps
)
);
// number of steps user taking to move forward
currentNumSteps++;
// once the user reaches point B, set pointA = pointB and pointB = point C
if (currentNumSteps == maxNumSteps) pointsObj.i++;
}
};