地理信息系统GIS,不免需要一些动画在地图上面展示;比方说SOS求救、事故点位置、救援点等;
核心代码
function handleCircleSpreadAnimation(circle) {
// 动画步数(可以根据需要调整)
var steps = 25;
var radius = 20;
var currentStep = 0;
var total = 10;
var animationId;
function animate() {
if (currentStep < steps) {
var progress = currentStep / steps;
var newRadius = 5000 + (5000 - radius) * progress;
circle.setRadius(newRadius);
currentStep++;
animationId = requestAnimationFrame(animate);
} else {
if (total === 0) {
animate = null;
animationId = null;
circle.setRadius(5000);
return;
}
total--
currentStep = 0;
animate();
}
}
animate();
}
如何使用
// 创建circle
var circle =new T.Circle(new T.LngLat(116.40093, 39.90313), 5000,{color:"#C90000",weight:2,opacity:0.5,fillColor:"#FB5812",fillOpacity:0.5,lineStyle:"solid"});
// 向地图上添加circle
map.addOverLay(circle);
// 执行动画
handleCircleSpreadAnimation(circle);