当前位置: 首页 > article >正文

【vue】高德地图AMap.Polyline动态更新画折线,逐步绘制

可以使用 setTimeoutsetInterval 来逐个点绘制折线,确保每次添加新的点到 path 并更新 Polyline,如下所示:

localPolyline(path) {
  console.log('逐点绘制 polyline...');
  
  let drawnPath = []; // 用于存储当前绘制的点
  let index = 0;
  
  let polyline = new AMap.Polyline({
    path: drawnPath, // 初始为空
    isOutline: true,
    outlineColor: '#ffeeff',
    borderWeight: 3,
    strokeColor: "#3366FF",
    strokeOpacity: 1,
    strokeWeight: 6,
    strokeStyle: "solid",
    strokeDasharray: [10, 5], // 只有 strokeStyle 为 dashed 时有效
    lineJoin: 'round',
    lineCap: 'round',
    zIndex: 50,
  });

  map.add([polyline]);

  let timer = setInterval(() => {
    if (index < path.length) {
      drawnPath.push(path[index]); // 添加新点
      polyline.setPath(drawnPath); // 更新折线路径
      index++;
    } else {
      clearInterval(timer); // 结束绘制
      map.setFitView(); // 调整视图
    }
  }, 300); // 每 300 毫秒绘制一个点
}

实现原理

  1. 逐步绘制setInterval 控制每 300ms 添加一个点,更新 Polyline
  2. 动态更新路径:每次添加新点后,调用 polyline.setPath(drawnPath) 重新渲染。
  3. 完成后调整视图:当所有点绘制完成,clearInterval(timer) 停止计时,并 map.setFitView() 以适应整个折线。

这样,你的折线会像动画一样逐个点地绘制出来!🚀


http://www.kler.cn/a/540131.html

相关文章:

  • 使用Qt+opencv实现游戏辅助点击工具-以阴阳师为例
  • 12.翻转、对称二叉树,二叉树的深度
  • C语言基础第04天:数据的输出和输出
  • Docker从入门到精通- 容器化技术全解析
  • Photoshop自定义键盘快捷键
  • 手动配置IP
  • 深度学习-神经机器翻译模型
  • 【1.05版】wordpressAI插件批量生成文章、图片、长尾关键词、文章采集、AI对话等
  • 软件工程 项目管理
  • 使用 mkcert 本地部署启动了 TLS/SSL 加密通讯的 MongoDB 副本集和分片集群
  • mysql 学习12 存储引擎,mysql体系结构
  • 技术栈选择:Vue 还是 React
  • gptme - 终端中的个人 AI 助手
  • 《一》深入了解软件测试工具 JMeter-自我介绍
  • 基于lstm+gru+transformer的电池寿命预测健康状态预测-完整数据代码
  • iOS Swift算法之KDF2
  • 【1】深入解析 SD-WAN:从思科 SD-WAN 视角看现代网络发展
  • 题解:P1005 [NOIP 2007 提高组] 矩阵取数游戏
  • win10向windows server服务器传输文件
  • SQLite3实战教程:从入门到精通
  • 基于SeaTunnel同步mysql数据
  • 第18章 不可变对象设计模式(Java高并发编程详解:多线程与系统设计)
  • 优惠券平台(十五):实现兑换/秒杀优惠券功能(2)
  • Untiy3d 配置vs code开发环境
  • MySQL-binlog2sql闪回工具介绍与回滚实战
  • Unity项目实战-简单特效系统的管理