我想把標記放在地圖上。源是一個json請求,返回城市。回調回調
我有一個返回記錄(異步)和函數(谷歌地圖API)的函數(sencha),返回特定城市(異步)和方法(谷歌地圖)的lng,lat,地圖上的標記。
結果應該是地圖上由谷歌計算的位置上的標記,並從記錄中檢索到標題。
負荷記錄
offers = App.stores.offers.load({
callback: function(records, operation, success){...}
})
獲取地點
geocoder = new google.maps.Geocoder();
geocoder.geocode(
{'address': adress},
function(results, status) {...}
}
,並設置標誌
marker = new google.maps.Marker({
map: map,
position: loc,
title: text
});
我wan't什麼做的是,加載記錄,循環每個記錄,瞭解城市的位置並在那裏放置一個標記。
同步,我會做:
records = App.stores.offers.load();
for (var i=0; i < records.length; i++) {
setMarker(map, getLocation(records[i].data["city"]), cords[i].data["text"]);
}
什麼是與異步功能把它一起的正確方法?
其實那是我第一次的猜測太多,但如果我需要記錄[I]的.text設置標記標題文本,這是不行的.. – Beffa
你不是很清楚你需要什麼,我會盡量弄清楚 – slawekwin
爲什麼要結果[i]存儲文本?因爲它是異步的,「i」在「geocode」的回調中不是你期望的回調,所以很可能是records.length,因爲循環比從google回來的響應快很多。 – Beffa