Клуб API Карт

Как задать событие в кластере при пролистывании объектов

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

В общем формирую кластеры  с объектами

есть несколько точек с одними координатами

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

Там где слева список балунов идет а с права инфа.

 

большое спасибо

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

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

Если задача такова, то сейчас придется переопределить макет балуна кластера и зашить внутри эту логику самостоятельно.

Мы уже думаем, как сделать балун кластера более гибким.

Сделайте как в игре симс ) чтоб нажать на кластер - и вокруг него появлялись балуны входящие в этот кластер - и кнопочка закрыть раскрытые балуны в правом верхнем углу тогда и с подгонкой окна информации у балуна проблем не будет

Мы ласково зовем этот вариант ромашкой =)

Ну так будет такой вариант ? :)

К сожалению, ничего не могу обещать.

Помогите тогда пжлста с такой штукой:

Я вот сделал чтоб выводилось просто списком названий балунов

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

 

    var myBalloonLayout = ymaps.templateLayoutFactory.createClass('',{

     build: function () {

      var parent = this.getParentElement(),

      content = '

    ',

      gObjs = this.getData().properties.get('geoObjects');

      for (var i = 0, l = gObjs.length; i < l; i++) {

       content += '

  • '+gObjs[i].properties.get('clusterCaption') + '';
  •       }

          parent.innerHTML = content+'';

         }

        });

    У меня внезапно возник вопрос - а почему не устраивает стандартный балун кластера?

    Многим ) мне не надо чтоб разделялось к примеру на 2 окна - слева тип с права описание - я к примеру просто хочу чтоб был список из имен объектов и при нажатии выводилось отдельное окно и подгружаемой через AJAX информацией

    Ясно.

    Примерное решение мне видится такое - слушать клик на дом-ноде, которая содержит 'clusterCaption'. В обработчике уже делать запрос и потом, когда данные придут, добавлять в нужную ноду содержимое.

    Марин, может вместо необходимости руками вешаться на дом-ноды, дать возможность через ymaps.events слушать клики на clusterCaption? что думаешь?

    В данной ситуации это все равно не поможет - потому что нужно переопределить лейаут балуна полностью.

    Ну покажите пример рабочий то пожалуста )))

    Вообще вот смотрите:

     

    for (var i = 0, l = gObjs.length; i < l; i++) {

            content += '

  • '+gObjs[i].properties.get('clusterCaption') + '';
  •        }

    Я так понимаю gObjs[i] - это как раз элемент кластера - типа балун ?так как его открыть? то есть gObjs[i].open() или что такое...

    gObjs[i] - это метка, входящая в состав кластера. Открыть ее балун не получится, пока она находится в кластере. Из нее можно вытащить нужные данные и вывести их, где требуется.

    никатит - нужен именно балун ( эх..... придется походу смещением меток делать чтоб координаты не попадали друг на друга... печаль....

    Я не очень понимаю задачу - у вас открыт балун кластера - в нем список меток, по клике на название метки должен открываться другой балун - балун метки, одновременно с текущим?

    http://map.igis.ru/test/test.swf.html

    Вотп ример чтоб понятнее было

     

    то етсь когда я нажимаю на отдельную метку - у меня происходит обработка внутренностей балуна и в зависимости от этого я вывожу через AJAX нужную инфу. А в кластере я не могу вывести такое содержимое. То есть в теории бы смог бы конешчно - но это опять придется повторять обработчик внутренностей... а хотелось бы чтоб при нажатии на ссылку из списка меток - открывался именно бы нужный балун с его же обработчиком

    В идеале конечно вам бы подошел "аккордеон", как на сайте gdeetotdom.ru (кликните там на любой кластер). К сожалению, сейчас вам придется самостоятельно заново генерировать содержимое балуна метки и вставлять его в балун кластера под списком - более изящного решения не могу предложить(

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