別の関数から受け取る JS 配列があります。私はそれをループして、マップに遅れてマーカーを追加する必要があります。それにもかかわらず、最後のマーカーまでスキップしているようです。配列のサイズをテストしましたが、ループで配列の値をテストしましたが、良好です マーカー関数 (ループでタイムアウト関数を設定せずに呼び出された場合) は正常に動作します
<script>
var map;
var PlayDatesArray=new Array();
function playAllHistoryFunction(){
timeDelay1=1;
for(i=0; i<PlayDatesArray.length; i++) {
pddtArray = PlayDatesArray[i].split("|"); //split String using | delimiter[date]|[lat]|[lon]
lt1=pddtArray[1];
ln1=pddtArray[2];
tstamp1= pddtArray[0];
oldtimeDelay1=timeDelay1;
newTimeDelay=1500;
timeDelay1=oldtimeDelay1+newTimeDelay;
setTimeout(function(){
centerMap(lt1, ln1);
map.setZoom(14);
addMarker(lt1, ln1, tstamp1);
}, timeDelay1);
}
}
function centerMap(lat1, lon1){
var latlngbounds1 = new google.maps.LatLngBounds();
latlngbounds1.extend(new google.maps.LatLng(lat1, lon1));
map.fitBounds(latlngbounds1);
}
function addMarker(lat, lng, name){
var image = new google.maps.MarkerImage('images/icon-home.gif');\
var mn = new google.maps.Marker({
map: map,
icon: image,
position: new google.maps.LatLng(lat, lng),
title: name
});
map.setCenter(new google.maps.LatLng(lat, lng));
}
</script>