大概思路:// LineString 对象 const line = new maptalks.LineString([...]); const segments = []; for (let i = 1; i < line.getCoordinates().length; i++) { segments.push(new maptalks.LineString([ line.getCoordinate(i - 1), line.getCoordinate(i) ])); } function animate(progress) { layer.clear(); const count = Math.floor(progress * segments.length); for (let i = 0; i < count; i++) { segments[i].addTo(layer); } } const slider = document.getElementById('slider'); slider.addEventListener('input', function () { const progress = this.value / 100; // 滑块范围是0到100 animate(progress); });
大概思路: