映射我有顯示器10個標記在地圖的OpenLayers經由mapstraction使用的頁面。如何拖延標記加載的OpenLayers與mapstraction
我想加載地圖第一標記,然後一個接一個地說以後每一秒,我嘗試使用window.setTimeout()之後,它停止加載地圖,並加載只有第一個標記。
var map;
var lat = new Array() ;
lat=${latitude};
var lon= new Array();
lon=${longitude};
var oneByOneCounter=0;
var count=10;
function initMap(){
map = new Mapstraction('mymap','openlayers');
map.setCenter(new LatLonPoint(0.0,0.0));
map.addControls({pan: true, zoom:'small', map_type:true});
renderMarkerOneByOne();
map.autoCenterAndZoom();
};
function renderMarkerOneByOne() {
if (oneByOneCounter < count) {
latitude= lat[oneByOneCounter];
longitude= lon[oneByOneCounter];
var point = new LatLonPoint(latitude,longitude);
var marker = new Marker(point);
var info = "("+(oneByOneCounter+1)+")";
marker.setInfoBubble(info);
marker.setHover(true);
marker.setIcon('icon_green.png', [27,31]);
map.addMarker(marker);
oneByOneCounter++;
window.setTimeout("renderMarkerOneByOne()", 1000);
} else {
oneByOneCounter = 0;
}
}
我無法揣摩出我做錯了renderMarkerOneByOne()函數正確執行和把警報()我可以看到標記對象是越來越創建了所有的時間,但對於之後的某些原因第一個標記被繪製,其他標記不會被繪製在地圖上。
任何幫助或建議表示歡迎
感謝
我居然發現了問題,這是不符合循環的問題,它是與map.autoCenterAndZoom功能的問題。這個函數在迭代中失去了它的價值。 後,我用setCenterAndZoom()函數,它的工作就像魅力。 –