重绘折线传单

Redraw Polyline Leaflet

我有一条包含多个点的折线,我想在重新排列这些点的循环中多次重绘它。我用过setLatLngs函数,但它似乎重画了一次整个折线。

如何在循环中重绘多段线?

代码如下:

test()
{
    for (var i=0;i<100;i++)
    {
        this._polyline.setLatLngs(this.shuffle(this._polylinePoints));
    }
}

Here 是一个 jsfiddle。

谢谢!

所以,如果你想在一定时间内查看每次迭代的配置..你可能必须使用 setTimeout,就像下面的 example.Or 做一些递归的 instead.Here 我只是不断地增加超时时间,递归方法效率更高。

self = this; 
for (var i=0;i<100;i++) { 
   setTimeout(function() {
       self._polyline.setLatLngs(self.shuffle(self._polylinePoin‌​ts));
   },1000*i) 
}

下面是递归的例子

self = this;
var runs = 0;

shufflePoints = function() {
    if (runs < 100) {
      runs++;
      self._polyline.setLatLngs(self.shuffle(self._polylinePoin‌​ts));
      setTimeout(function() {
       shufflePoints()
      },1000)
    }
}