У меня есть листовка-карта. Я использую круги для маркеров, потому что у меня есть встроенное масштабирование, и я хочу, чтобы радиус кругов анимировался во время масштабирования. Я также хочу, чтобы круги «пульсировали», если по ним щелкнуть. Я вижу в Интернете много документации по пульсирующим маркерам для листовок, но ни одной по пульсирующим кругам. Есть ли здесь простое решение?
JQuery:
var map = L.map('map').setView([40.449620, -79.939990], 13);
L.tileLayer('https://stamen-tiles-{s}.a.ssl.fastly.net/terrain/{z}/{x}/{y}{r}.{ext}', {
maxZoom: 19,
ext: 'png',
attribution: 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> — Map data © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'//,
}).addTo(map);
map.on('click', function(e) {
var currentZoom = map.getZoom();
if (currentZoom == 13) {
map.flyTo(e.latlng, 15, { //zoom in on click
animate: true,
duration: 1,
easeLinearity: 1
});
}
});
$.post('php/get-buildings.php', function(output){
var obj = jQuery.parseJSON( output );
var color;
customCircle = L.Circle.extend({
options: {
//some more options here
}
});
for (var i=0; i<obj.length; i++) {
if (obj[i].there_2017 == 'No') {
color = '#000';
} else {
color = '#1565C0';
}
//var circle = L.circle([obj[i].lat,obj[i].lng], {
var circle = new customCircle([obj[i].lat,obj[i].lng], {
color: '#000',
weight: 0.5,
fillColor: color,
fillOpacity: 1,
borderWidth: 2,
radius: 40,
//some more properties
}).addTo(map).on("click", circleClick);
function circleClick(e) {
var clickedCircle = e.target;
clickedCircle.setStyle({'weight': '3'}); want to animate this
}
}//end for
});