У меня есть листовка с несколькими маркерами.При нажатии на маркер этот должен быть выделен.Я использую divIcons
и хочу изменить весь значок или имя класса его, оба будут работать для меня.В данный момент я просто изменяю класс созданного div
в HTML-дереве, чтобы выделить его.Это прекрасно работает, но я кластерный маркер.Поэтому элементы div создаются и выводятся снова и снова, и мой класс подсветки исчезает при каждой кластеризации.
Маркеры:
var markerIcon = L.divIcon({
className: 'marker--default',
html: "15",
iconAnchor: [20, 20]
});
var markerIconActive = L.divIcon({
className: 'marker--state--active',
html: "15",
iconAnchor: [20, 20]
});
Интеграция маркеров:
var markers = L.markerClusterGroup({});
markers.addLayer(L.marker([50.919523, 6.940621], {icon: markerIcon})).on('click', onClick);
map.addLayer(markers);
Кликвент:
function onClick(e) {
e.target.setIcon(markerIconActive);
}
Примечание. Не работает.Я получаю ошибку «e.target.setIcon не является функцией».После прочтения документального фильма кажется, что для divIcons нет метода setIcon.Как уже говорилось, это будет работать и для меня, если изменить только className, но я не знаю, как это изменить.
Документация:
https://leafletjs.com/reference-1.4.0.html#divicon