Клуб API Карт

Геокодирование по списку адресов с добавлением уникальной информации в балун

Пост в архиве.
statusagency
20 октября 2013, 09:51

Здравствуйте.

Предварительно просмотрев темы, не смог до конца получить ответ на свой вопрос.

Имеется массив адресов и описаний к ним

var Items =

[

['Город 1, Улица 1 дом 1', 'Описание для балуна 1'],

['Город 1, Улица 2 дом 2', 'Описание для балуна 2'],

['Город 1, Улица 3 дом 3', 'Описание для балуна 3']

];

Необходимо разместить точки на карте и соответственно указать каждому балуну свое описание.

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

Насколько я понял в geocode наряду с адресом нельзя передавать какие-либо дополнительные параметры.

7 комментариев

Читал эту тему.

Прочитал еще раз, у kovalchykaleksandr похожая со мной задача.

В моем случае данные по адресам могут очень часто меняться (появляться новые, удаляться старые), и для каждой кэшировать координаты будет накладно.

Т.е. насколько я понял, связать полученные геокоординаты по адресу с исходным массивом можно только собственно по адресу который также передается в ответе на геозапрос? Вот только этот адрес похоже отдается в едином: "Россия, Город, Улица дом", а в массиве запрос может выглядеть иначе. Например, в массиве "г. Красноярск, ул. Ленина дом 23", а в геообъекте в поле text будет содержаться "Россия, Красноярск, улица Ленина, 23", т.е. однозначано поиском по массиву эти данные уже не связать, и оригинальный запрос в объекте не сохраняется.

связывать надо по индексу

Имеется в виду индекс элемента массива?

И как можно индекс передать в callback функцию?

Зачем его передавать. После вызова метода then того класса, ссылку на который я Вам дал выше, в обработчик будет передана коллекция в которой найденные геообъекты идут в том же порядке.

Все понял, спасибо большое!

Нашел, что в metaData.geocoder.request находится изначальный запрос.

Выходит, что единственным вариантом связать исходных массив с данными геокодера является поиск в исходном масиве строки с адресом на основе metaData.geocoder.request?