Я пытаюсь добавить/изменить маркеры с GMAP V2, используя этот способ (пример):Google Map API v2 - GeoCoder - как настроить маркер?
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!
приятно, что вы могли бы решить вашу проблему и поделился ею с нами. Пожалуйста, отметьте свой ответ как ответ. –