我有一个有几个点的折线,我想在一个循环中重绘它多次重新排列点。我使用了setLatLngs函数,但它似乎重绘了整个折线。
如何在循环中重绘折线?
以下是代码:
test()
{
for (var i=0;i<100;i++)
{
this._polyline.setLatLngs(this.shuffle(this._polylinePoints));
}
}
Here是一个jsfiddle。
谢谢!
答案 0 :(得分:0)
所以,因为如果你想在一定时间内看到每个迭代的配置......你可能不得不使用setTimeout
,就像在下面的例子中那样。或者做一些递归的东西。我只是不断地使超时更大,递归方法更有效率。
self = this;
for (var i=0;i<100;i++) {
setTimeout(function() {
self._polyline.setLatLngs(self.shuffle(self._polylinePoints));
},1000*i)
}
这是下面的递归示例
self = this;
var runs = 0;
shufflePoints = function() {
if (runs < 100) {
runs++;
self._polyline.setLatLngs(self.shuffle(self._polylinePoints));
setTimeout(function() {
shufflePoints()
},1000)
}
}