1
我想在Google地图上模拟路线路线时遇到一些问题。在Google地图上模拟路线
- JavaScript
closure
问题。 - 如何动态更改
setTimeout
时间间隔。
我有位置数据的列表,也有lacation对象不同的有用的属性为我呈现在谷歌地图,就像纬度,经度和时间等..
我想创建一个Google每500ms就会标记一次Marker(*动态更改间隔)以模拟地图上的路径路径,但每次获得相同的位置数据时都如此。
这里的JavaScript代码:
function playback(data) {
data = [{ Time: 2010, Lat: 1.36046, Lng: 103.897018 }, { Time: 2011, Lat: 1.352566, Lng: 103.855768 }, { Time: 2012, Lat: 1.349477, Lng: 103.802553}];
for (i = 0; i < data.length; i++) {
setTimeout(function() { printlocation(data[i]); }, i * 500);
}
}
function printlocation(cur) {
alert(cur.Time);
}
当代码运行时,它打印出2012年的3倍。
经过研究,可能是因为JavaScript closure
,但我真的不明白它是如何工作的。我想找到解决我的两个问题的模式。先谢谢了。