Как отобразить рядом с нарисованной областью, на которую навели, значок удаления?
Есть скрипт яндекс-карты, который позволяет на карте рисовать определенные области. При наведении на определенную область она становится красной, при клике на наведенную область она удаляется. Поставили задачу, чтобы при наведении на область помимо изменения цвета рядом с этой областью появлялся значок удаления. И вот никак мне это сделать не удается. Вот часть кода, что отвечает за наведение и удаление на область:
map.events.add('mouseup', function(e) {
if(paintProcess) {
document.getElementById('paint_btn').setAttribute('data-state', 'off');
document.getElementById('paint_btn').classList.remove('active');
document.getElementById('add_paint_btn').setAttribute('data-state', 'off');
document.getElementById('add_paint_btn').classList.remove('active');
let coordinates = paintProcess.finishPaintingAt(e);
document.getElementById('add_paint_btn').style.display = 'flex';
document.getElementById('clear_paint_btn').style.display = 'flex';
getComplex(coordinates);
paintProcess = null;
let geoObject = button.isSelected() ? new ymaps.Polyline(coordinates, {}, styles[currentIndex]) : new ymaps.Polygon([coordinates], {}, styles[currentIndex]);
geoObject.events
.add('mouseenter', function (e) {
e.get('target').options.set({
fillColor: '#ff0000',
strokeColor: '#ff0000'
});
})
.add('mouseleave', function (e) {
e.get('target').options.set({
fillColor: '#0000ff',
strokeColor: '#0000ff'
});
})
.add('click', function (e) {
drawingsCollection.remove(e.get('target'));
if (!drawingsCollection.getLength()) {
document.getElementById('clear_paint_btn').click();
}
});
drawingsCollection.add(geoObject);
}
});
Ответы (1 шт):
Один из путей решения — отрисовка балуна с кнопкой удаления объекта на событие 'mouseenter' и удаление его с карты при 'mouseleave'.
Можно добавлять такой балун на одну из точек полигона или рисовать в центре его bounds-границ, выше bounds или сбоку. Это уже зависит от техзадания.