Как реализовать кастомный hint?

Рейтинг: 0Ответов: 1Опубликовано: 08.06.2023

Появилась необходимость вывести информацию о содержимом кластера при наведении. Было реализовано два варианта.

  1. В хинте, но он не зафиксирован и смещается при движении мышью. Можно ли как-то его зафиксировать?
  2. Отрисовка нового блока внутри блока кластера, но при этом отсутствует возможность взаимодействовать с новым блоком.

Новый блок

Карта реагирует на него так, будто его там нет, сквозь него есть доступ как к другим кластерам, так и возможность двигать карту.

Ответы

▲ 1Принят

Попробуй при нажатии на кластер выводить html-форму с необходимой информацией. Я делал так:

         CustomControlClass = function (options) {
        CustomControlClass.superclass.constructor.call(this, options);
        this._$content = null;
        this._geocoderDeferred = null;
    };
ymaps.util.augment(CustomControlClass, ymaps.collection.Item, {
    onAddToMap: function (map) {
        CustomControlClass.superclass.onAddToMap.call(this, map);
        this._lastCenter = null;
        this.getParent().getChildElement(this).then(this._onGetChildElement, this);
    },
    _onGetChildElement: function (parentDomContainer) {
        // Создаем HTML-элемент с текстом.
        this._$content = $('<div class="customControl"></div>').appendTo(parentDomContainer);
        this._$content.html(textForSummary);
    },
});
 var customControl = new CustomControlClass();

ну а в "textForSummary" положи то что нужно.

но не забудь про ссылку на стили:

.customControl {
background-color: #fff;
padding: 10px;
        border-radius: 6px;
        max-width: 3000px;
        box-shadow: 0 0 20px rgba(0,0,0,0.5);  }

и прикрути вызов этой плашки к клику на кластер, либо к наведению на кластер. Раздел "События" в помощь события в учебнике яндекса