2011-07-07 56 views
1

我正在做一個谷歌地圖,它將讀取一組座標並將標記逐一放在地圖上。如何在google map api v3中逐一設置標記?

下面是我的想法:

function A{ 
    for loop( 
     set marker 
     call setTimeout('A',2seconds) 
    )  
} 

我的想法是設置標記和使用的setTimeout等待2秒鐘,然後設置一個標記。

但是,它不起作用。它會同時顯示所有標記並重復更新所有標記。

我該如何實現我的目標? 感謝您的幫助!!!!!!!!!!!!!!!

這裏是我的代碼:

function marker(){ 
    var marker; 
    var i=0; 

    while(i<locations.length){ 
     marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
      animation: google.maps.Animation.DROP, 
      map: map 
      }); 
     i=i+1; 
     var t=setTimeout("marker()",2000); 
    } 
} 
marker(); 

回答

1

你需要設置第一個標記後返回。您還需要一個指定要顯示哪個標記的參數。

function marker(i){ 
    if (i > locations.length) return; 

    var marker; 

    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
     animation: google.maps.Animation.DROP, 
     map: map 
     }); 

    var t=setTimeout("marker("+(i+1)+")",2000); 
} 
marker(0); 
+0

你能告訴我應該在程序中添加什麼嗎?回到哪裏? 我不太清楚「需要一個參數給A來指定顯示哪個標記。」 – EdwardCPF

+0

查看我的代碼更新版本(請注意,我還沒有測試過它,但這應該可行) –

+0

感謝Micheal,它的工作原理。 你能解釋一下語法的含義是什麼:marker(「+(i + 1)+」)? – EdwardCPF

相關問題