Клуб API Карт

Множественное геокодирование, список ссылок на объекты.

Пост в архиве.

День добрый, создал карту по примеру http://api.yandex.ru/maps/jsbox/multigeocode, как сделать список ссылок на каждый элемент "адрес" масcива объектов, то есть чтобы при клике по ссылке открывался балун определнного элемента. Спасибо за ранние.

9 комментариев
Всеволод Шмыров
28 января 2016, 01:56
Доброе утро!
В обработчике клика ссылки нужно вызывать у определенного геообъекта .balloon.open()
http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/GeoObject.xml#balloon

Спасибо.Наверно я чего то не понял, но у меня все геообъекты находятся в масиве,можно пример кода?

Всеволод Шмыров
28 января 2016, 01:56
Хорошо бы увидеть ваши наработки. Вариантов может быть множество. Если ваш код ничем не отличается от примера в песочнице, то можно в функции-обработчике resolve пробежаться по geoObjects и создать ссылки с обработчиками кликов. Можно заранее задать ссылки (так как адреса заранее заданы), но в каждом слушателе клика нужно будет проверять наличие карты, заполненность geoObjects и т.п.

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

 

Берете элемент из геоколлекции по индексу и добавляете ему в балун информацию из вашего массива по тому же индексу.

Индексы должны совпадать

Спасибо.

К примеру вот я "профильтровал" объекты, как теперь добавить условие посылания на этоти объекты.

 

var item = res.geoObjects.get(i);

        var cont = item.properties.get('balloonContentBody');

item.properties.set('balloonContentBody', '

');

i++

 

У геоколлекции есть метод each используйте его для перебора элементов коллекции. 

Все равно не пойму синтаксис, в каком месте нужно прописывать услвовие в том куске что я дал пример? можно поподробней

res.geoObjects.each(function (geoObject, index) {

    ...

});