Я пытаюсь добавить / настроить маркеры с помощью Gmap V2 следующим образом (пример):
for (var i in table)
{
var myvar = table[i]['text'] ;
var myaddress = table[i]['address'] ;
geocoder.getLatLng(
myaddress ,
function(point) {
alert(myvar) ; // here myvar is wrong
// ... adding customer markers ...
}
});
}
В этом примере я получил хорошую оценку за каждую запись в таблице, но myvar ошибочна в каждом вызове: myvar остается равным последней записи таблицы ...
geocoder.getLatLng - асинхронная функция, из-за этого?
Edit:
Спасибо за ответ. Но у меня возникает такая проблема, когда я использую цикл, например:
var address = 'somewhere';
for (i = 0 ; i < 3 ; i++)
{
geocoder.getLatLng(
address,
function(point) {
if (point) {
alert(i);
}
});
}
Точка всегда равна 3!