我想把标记放在地图上。源是一个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