JS замыкания для обратных вызовов API просмотра улиц - PullRequest
1 голос
/ 08 марта 2011

API карт Google предлагает некоторые методы, которые делают обратные вызовы для пользовательских методов, но с определенными параметрами, такими как getPanoramaByLocation().Моя проблема в том, что я не могу надежно связать свои запросы с ответами.Основной вызов выглядит так:

streetViewService.getPanoramaByLocation ( latLng, 10, recordPanorama );

документы: http://code.google.com/apis/maps/documentation/javascript/reference.html#StreetViewService

Я думал, что «с» или замыкание поможет мне передать что-то в recordPanorama, обратный вызов, кроме этих двухпредопределенные параметры, но я, кажется, только добавляю информацию в контекст gPBL(), что, конечно, не передает ее туда, где это необходимо.Когда я помещаю дополнительные объекты в область видимости с помощью «with», они не существуют в моем обратном вызове, и переданные аргументы кажутся одинаковыми.

Попытка сопоставить географические координаты запроса с координатами результата не являетсятривиально, и я думаю, что будут большие ошибки на больших перекрестках.Единственная другая часть информации, которую я имею, - это время, когда происходит запрос;Я мог бы хорошо связать запросы и ответы друг с другом, достаточно замедляя свои запросы, но разве нет реального способа передать идентификатор в мою функцию обратного вызова?

1 Ответ

0 голосов
/ 07 мая 2011

Кажется, вы пытаетесь установить некоторую переменную X и сохранить ее в функции обратного вызова. В этом случае вы можете попробовать поместить X в область действия замыкания следующим образом:

for (int i=0;i<9;i++)
{
var x = 10;

magicAjax(URL, function () {
alert(x);
});
}

Я не проверял этот код; Я могу ошибаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...