重绘折线传单

时间:2017-03-04 18:00:53

标签: leaflet polyline

我有一个有几个点的折线,我想在一个循环中重绘它多次重新排列点。我使用了setLatLngs函数,但它似乎重绘了整个折线。

如何在循环中重绘折线?

以下是代码:

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

Here是一个jsfiddle。

谢谢!

1 个答案:

答案 0 :(得分:0)

所以,因为如果你想在一定时间内看到每个迭代的配置......你可能不得不使用setTimeout,就像在下面的例子中那样。或者做一些递归的东西。我只是不断地使超时更大,递归方法更有效率。

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)
    }
}