天地图Marker跳一跳动画

天地图的Marker点终于也能实现"跳一跳"啦!虽然天地图官方API目前没有直接提供Marker点跳动的现成方法,但我们可以借助一些技术手段来实现这一效果。

效果图
核心方法
typescript 复制代码
function handleMarkerJumpAnimation(marker, options) {
    var {
        jumpHeight = 0.0005,  // 弹跳高度(经纬度偏移量)
        steps = 25,          // 动画步数
        total = 1, // 执行次数
    } = options;
    // 弹跳动画参数
    var curLngLat = marker.getLngLat();
    marker.setLngLat (curLngLat)
    var curLngLat = marker.getLngLat();
    var targetLngLat = new T.LngLat(curLngLat.lng, curLngLat.lat + jumpHeight);
    // 当前状态
    var currentStep = 0;
    var animationId;
    function animate() {
        if (currentStep < steps) {
            // 计算新的位置
            var progress = currentStep / steps;
            var newLat = curLngLat.lat + (targetLngLat.lat - curLngLat.lat) * progress;
            var newLngLat = new T.LngLat(curLngLat.lng, newLat);
            marker.setLngLat(newLngLat);

            currentStep++;
            animationId = requestAnimationFrame(animate);  // 使用 requestAnimationFrame 继续动画
        } else {
            // 动画结束,恢复初始位置
            marker.setLngLat(curLngLat);
            cancelAnimationFrame(animationId);
            if (total === 0) {
                animate = null;
                animationId = null;
                return;
            }
            total--
            currentStep = 0;
            animate();
        }
    }
    animate();  // 开始动画
}
使用
typescript 复制代码
// 创建标注对象
var marker = new T.Marker(new T.LngLat(116.411794, 39.9068));
// 向地图上添加标注
map.addOverLay(marker);
// 调用跳一跳方法
handleMarkerJumpAnimation(marker, {});
相关推荐
Jutick17 分钟前
揭秘低延迟:WebSocket 实时行情如何拯救你的量化策略?——Python 生产级实现
前端
~欲买桂花同载酒~18 分钟前
项目优化-vite打包优化
前端·javascript·vue.js
林夕sama20 分钟前
多线程基础(五)
java·开发语言·前端
我叫蒙奇24 分钟前
husky 和 lint-staged
前端
kyriewen26 分钟前
JavaScript 继承的七种姿势:从“原型链”到“class”的进化史
前端·javascript·ecmascript 6
穷鱼子酱28 分钟前
ElSelect二次封装组件-实现分页(下拉加载、缓存)、回显
前端
科科睡不着29 分钟前
拆解iOS实况照片📷 - 附React web实现
前端
前端老兵AI30 分钟前
Electron 桌面应用开发入门:前端工程师的跨平台利器
前端·electron
胖子不胖31 分钟前
浅析cubic-bezier
前端
reasonsummer36 分钟前
【办公类-133-02】20260319_学区化展示PPT_02_python(图片合并文件夹、提取同名图片归类文件夹、图片编号、图片GIF)
前端·数据库·powerpoint