Для получения маркера пульсирующего круга можно использовать divIcon и создать понравившийся вам пульсирующий маркер с помощью css.
JS код:
const generatePulsatingMarker = function (radius, color) {
const margin = 0
const cssStyle = `margin-left:-${margin}px;
margin-top:-${margin}px;
width: ${radius}px;
height: ${radius}px;
background: ${color};
color: ${color};
box-shadow: 0 0 0 ${color};
`
return L.divIcon({
html: `<span style="${cssStyle}" class="pulse"/>`,
})
}
var pulsatingIcon = generatePulsatingMarker(10, 'red');
L.marker([51.497, -0.09], {icon: pulsatingIcon}).addTo(map);
и CSS пульсирующий маркер:
.pulse {
display: block;
border-radius: 50%;
cursor: pointer;
animation: pulse 2s infinite;
}
@keyframes pulse {
0% {
-moz-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.4);
box-shadow: 0 0 0 0;
}
70% {
-moz-box-shadow: 0 0 0 10px rgba(0, 0, 0, 0);
box-shadow: 0 0 0 10px rgba(0, 0, 0, 0);
}
100% {
-moz-box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
}
}
.leaflet-div-icon {
background: rgba(0,0,0,0);
border: none;
}
пример скрипки здесь
Кроме того, если вы хотите, чтобы маркер пульсировал только при нажатии, добавьте соответствующий класс css "pulse" при событии щелчка.