我想让学校靠近一系列地点
所以我把那个地方搜索放在循环中。搜索功能有一个回调函数,它返回结果。但是回调是随机执行的,而不是我请求的顺序。所以我无法知道哪所学校被归还哪个地方???
for(i in array_of_loc)
service.nearbySearch({
location: array_of_loc[i],
rankBy:google.maps.places.RankBy.DISTANCE,
types: ['school']
}, function callback(results, status) {
alert(i);
//get the result to get info of places returned and assign it to requested location });
警报总是给我数组的长度。也就是说,在循环结束后调用回调。所以我不知道哪个位置适合哪个位置
答案 0 :(得分:1)
你应该创建一个搜索函数,这样你就可以创建一个封闭,即使在回调之后,location
总是可以访问的。加上you shouldn't use for (... in ...)
循环迭代数组:
function search (location) {
service.nearbySearch({
location: location,
rankBy: google.maps.places.RankBy.DISTANCE,
types: ['school']
}, function callback(results, status) {
alert(location);
});
}
for(var i = 0; i < array_of_loc.length; i++) {
search(array_of_log[i]);
}