Клуб API Карт

Как сделать подсказку для кластера?

nick@inquarta.ru
10 августа 2015, 10:42

Добрый день, есть кластер

vremena = new ymaps.Clusterer();

В него забрасываются плейсмарки
vremena.add([myPlacemarks[2], myPlacemarks[3] ]);

 

Хочу сделать для кластера всплывающую подсказку, но какие конструкции и опции не пытался туда забрасывать, подсказка отображаться никак не желает, даже если напрямую общаешься к переменной в консоли через open();

 

vremena.options.set({
   hasHint: true,
   hint: 'Жилой Комплекс "Времена года"'
});

 

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

13 комментариев
Подписаться на комментарии к посту
Всеволод Шмыров
10 августа 2015, 11:31
Добрый день.
В описании метода createCluster есть соответствующий пример
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer-docpage/#createCluster
Вы должны задавать опцию не самому кластеру, а ClusterPlacemark

Сейчас испытаю на 2-х 3-х кластерах, на одном сработало.

Я думал, что он работает только с кластером геообъектов, но, похоже, для кластера с плейсмаркерами тоже применимо, спасибо за подсказку.

 

Всеволод Шмыров
10 августа 2015, 11:41
ClusterPlacemark пересоздаются при каждом изменении масштаба.

Извиняюсь, может быть вы также подскажите, как управлять высотой и другими параметрами балуна кластера? Для плейсмарков всё понятно, для кластеров пока что не понял, куда и какие параметры надо кидать, т.е. есть опция ballonHeight например, но у меня через неё ничего сделать не получилось вне зависимости от того, где я пытался применять. В примерах ничего не нашёл на эту тему. Может быть он даже умеет подстраиваться под высоту контента?

Всеволод Шмыров
10 августа 2015, 14:12
Опции balloonWidth нет, но есть https://tech.yandex.ru/maps/doc/jsapi/2.1-dev/ref/reference/Balloon-docpage/#param-options.maxHeight и min.
Задавать нужно у ClusterPlacemark ballonMaxWidth

Пока что не удалось добиться работы

clusterPlacemark.properties.set('hintContent', 'Жилой Комплекс "Времена года"');

Тут всё работает

clusterPlacemark.options.set({ ballonMaxWidth: 600 });

Никакого эффекта

clusterPlacemark.properties.set( 'ballonMaxWidth', 600 );

Попробовал это на всякий случай, тоже эффекта нет

 

Всё на этапе создания делается

vremena.createCluster = function (center, geoObjects) {
                var clusterPlacemark = ymaps.Clusterer.prototype.createCluster.call(this, center, geoObjects);
               
                clusterPlacemark.properties.set('hintContent', 'Жилой Комплекс "Времена года"');
               
                clusterPlacemark.options.set({ ballonMaxWidth: 600 });
               
                clusterPlacemark.properties.set( 'ballonMaxWidth', 600 );
               
                return clusterPlacemark;
            };

не балОн а балУн

Балooну (тут 2 латинских o) кластера можно размеры задавать, или сделать чтобы он по контенту растягивался?

https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Balloon-docpage/

 

Размеры можно задавать вашему содержимому балуна (там же HTML можно)

а балун будет растягиваться до опции maxWidth

 

У меня балун не хочет растагиваться, он делает overflow:scroll и всё. Куда только не пытался пихать maxHeight или схожие параметры, ни один на работе балуна эффекта не имел...

Куда-попало пихать не надо ни в балуне ни в чем-либо еще.

 

    clusterer.createCluster = function (center, geoObjects) {

        var clusterPlacemark = ymaps.Clusterer.prototype.createCluster.apply(this, arguments);

        clusterPlacemark.options.set('balloonContentLayoutWidth', 400);

        

        return clusterPlacemark;

    };

Спасибо большое. А где вы это нарыли? Я не в песочнице не видел ни в примерах описании у них...