Сделать закрытие makeCallback
из geocodeCallBack
.Закрытие получает и сохраняет rownum
:
for (var rownum=0; rownum<=address.length; rownum++) {
if (address[rownum])
geocoder.geocode( {'address': address[rownum].address}, makeCallback(rownum));
}
function makeCallback(addressIndex) {
var geocodeCallBack = function(results, status) {
var i = addressIndex;
alert(address[i].name + " " + results[0].formatted_address);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
// use address[i].name
title: results[0].formatted_address
});
}
return geocodeCallBack;
}
Конечно, вы также можете сделать закрытие makeCallback(addressName)
и передать имя напрямую, но приведенная выше версия с индексом адреса является более общей.