轨迹回放时地图标记频繁闪烁如何优化?
在用Leaflet做轨迹回放时,每隔500ms更新标记位置,但地图总是卡顿闪烁,调整时间间隔也没用,这是怎么回事?
我按以下方式实现的:setInterval循环遍历坐标数组,每次创建新标记并删除旧标记:
let currentMarker;
function updatePosition(index) {
if (currentMarker) map.removeLayer(currentMarker);
const coords = trackData[index];
currentMarker = L.marker([coords.lat, coords.lng]).addTo(map);
}
这样虽然能移动标记,但地图缩放时明显掉帧,控制台没有报错。试过把setInterval改成requestAnimationFrame反而更卡,求解
如果还卡,加上防抖处理:只在地图静止时更新位置。