天地图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, {});
相关推荐
百度地图开放平台11 小时前
我用百度地图 Skills 体系重构了物流调度系统,节省了 90% 的人力
前端·github
JavaAgent架构师11 小时前
前端AI工程化(九):AI Agent平台前端架构设计
前端·人工智能
梦想CAD控件11 小时前
网页端对DWG图纸进行预览与批注(CAD轻量化)
java·前端·javascript
不吃土豆的马铃薯12 小时前
Spdlog 进阶:日志基本控制、日志格式控制、异步记录器
linux·服务器·开发语言·前端·c++
wait12 小时前
Vibe Coding 开发技巧
前端·javascript·人工智能
ZengLiangYi12 小时前
Vercel AI SDK 入门:一行代码切换 LLM Provider
前端·javascript·aigc
ZengLiangYi13 小时前
Electron 入门:Web 应用打包成桌面软件
前端·electron
前端环境观察室13 小时前
别再靠人工记浏览器环境了:用 TypeScript 设计一套可审计模型
前端
鱼樱前端13 小时前
我做了一个不止有基础组件的 Vue 3 UI 库,还把 AI 组件也做进去了
前端·vue.js·ai编程
泥秋哥13 小时前
微前端-Module Federation运行时工具
前端·架构