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
,但我真的不明白它是如何工作的。我想找到解決我的兩個問題的模式。先謝謝了。