Leaflet 重画多段线传单

Leaflet 重画多段线传单,leaflet,polyline,Leaflet,Polyline,我有一条有几个点的多段线,我想在一个循环中多次重画它,在这个循环中我重新排列这些点。我使用了setLatLngs函数,但它似乎只重新绘制了一次整个多段线 如何在循环中重新绘制多段线 代码如下: test() { for (var i=0;i<100;i++) { this._polyline.setLatLngs(this.shuffle(this._polylinePoints)); } } test() { 对于(var i=0;i所以,因为如

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

如何在循环中重新绘制多段线

代码如下:

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

对于(var i=0;i所以,因为如果您想在一定时间内查看每个迭代的配置,您可能必须使用
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 i=0;你能解释一下你在这里要找什么吗?是的,当然,snkashis。在测试函数中,多段线应该被重绘一百次,但只重绘一次。如果你按下“测试”按钮,执行测试函数,我希望看到多段线被重绘一百次,但它被重绘了一次。我需要重绘一条多段线几次,因为我要多次替换多段线中的所有点。但它被重绘了很多次,你就是看不到。我想看看我在说什么在你的
test()
中使用'self=this;for(var i=0;iYes snkashis),你是对的。我需要在每次迭代中看到重新绘制的多段线。我该怎么做呢?就像我之前的例子一样……为什么不在你要查找的时间内设置一个递归调用自身的函数?
self = this;
var runs = 0;

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