Vue高德地图动态绘制路线与轨迹巡航实战:从坐标转换到动画性能优化
做后台管理系统这么多年我接到过最典型的“地图需求”就是标题里这个高德地图动态绘制路线轨迹巡航还指定要用 Vue。第一次听可能觉得不就是画一条线加个小车跑吗真做完才发现里面全是细节坐标要转换、路径要抽稀、小车要转向、巡航要暂停稍不注意地图白屏或者动画卡顿调试一下午都是常事。这篇稿子我按自己的实操流程整理从环境搭建到踩坑排查全部走一遍给马上要接类似需求的朋友一个能直接抄作业的版本。1. 先拆需求动态绘制和轨迹巡航其实是两件事拿到这个标题第一反应不要急着写代码先把需求里的词拆清楚。地图上动态绘制路线指的是路线不是一次性全画出来而是像笔写字一样随着小车前进一段、画一段。轨迹巡航核心是小车沿着既定轨迹移动同时带动路线扩展。这两个功能可以一起做也可以分开做看产品到底要什么效果。我见过不少需求方嘴上说“动态绘制”实际上一打开页面就希望看到完整路线只是要求小车在线上走这个时候直接一次性setPath反而更简单、性能和视觉效果都更好。真正需要“动态绘制”的场景往往是用于回放演示、直播共享位置、或者要给用户一种“车在跑、路在画”的沉浸感。拿到需求先确认这一点能省掉大量返工。方案选型上Vue 这边没有太多悬念前端地图基本就在几个主流地图 SDK 里选而高德对国内坐标体系的支持、JS API 的成熟度、以及轨迹移动动画的封装程度都是个人开发者和小团队最容易上手的那一档。高德 JS API 2.0 按需加载的设计配合 npm 包方式引入对 Vue 项目非常友好不用在index.html里写死全局 script 标签组件内部也能跟生命周期对齐清理和销毁都更容易控制。技术栈选完之后功能清单我一般拆成五块地图初始化、轨迹数据预处理、动态路线绘制、巡航动画控制、状态清理与异常兜底。这五块里最容易出问题的是数据预处理和控制状态而不是 API 调用本身。后面每个部分我都展开讲。2. 环境准备把高德地图装进 Vue 组件这一步看起来基础但很多新手在这里就把路走歪了。高德官方的推荐方式Web 端申请完 Key 之后要用AMapLoader来按需加载 JS API而不是去index.html里手动引 script。按需加载的好处是组件用到才加载页面首屏更快而且 Key 和安全密钥的管理更干净。2.1 申请 Key 时要注意的两个重点控制台创建一个应用选择“Web端(JS API)”平台会拿到两个东西一个是key一个是securityJsCode。很多人只把 key 填进去结果上线后发现地图偶尔加载不出来控制台报安全策略错误就是因为没配置securityJsCode。配置地方是index.html在引入 AP 之前挂上全局变量script window._AMapSecurityConfig { securityJsCode: 你的安全密钥 }; /script这里有个容易踩的坑如果是本地开发安全域名里要把localhost加上而且最好把端口也写清楚否则本地调试会间歇性 403。2.2 用 Loader 接入 Vue 组件项目中通过 npm 安装npm i amap/amap-jsapi-loader --save然后在需要地图的组件里写一个初始化方法template div idmap-container classmap-container/div /template script import AMapLoader from amap/amap-jsapi-loader; export default { name: TrackMap, data() { return { map: null, AMap: null }; }, mounted() { this.initMap(); }, beforeDestroy() { this.map this.map.destroy(); }, methods: { async initMap() { const AMap await AMapLoader.load({ key: 你的key, version: 2.0, plugins: [AMap.MoveAnimation, AMap.ToolBar, AMap.Scale] }); this.AMap AMap; this.map new AMap.Map(map-container, { viewMode: 2D, zoom: 14, center: [116.397428, 39.90923], mapStyle: amap://styles/whitesmoke }); } } }; /script style scoped .map-container { width: 100%; height: 480px; } /style注意地图容器必须有明确高度不然地图容器高度为 0页面看起来就是白屏刷新多少次都没用。2.3 地图实例和组件生命周期的关系Vue 组件销毁的时候地图实例不会自动释放必须在beforeDestroy里手动调用map.destroy()。否则会出现一个很隐蔽的问题路由切走了音效没有但地图的 DOM、事件监听、定时器还挂在页面上内存占用只增不减。如果项目里还有多个页面来回切换时间一长页面会越来越卡。所以我的习惯是在这个阶段就让map和AMap都存到组件的data里后面销毁、重进、重置都用它们不要在方法内部临时定义。3. 轨迹数据准备坐标不准后面全是徒劳地图上画轨迹很多人直接拿后端给的一堆经纬度数组就开始绘制。结果一跑路线偏移了几十米过个路口拐弯的位置都对不上体验很差。原因基本是坐标系不一致。GPS 设备采集到的原始坐标通常是国际标准的 WGS84而高德地图在国内用的是加密偏移后的 GCJ-02 坐标系两者不能直接混用。3.1 数据进来先问一句坐标系是什么后端接口文档里如果写了“经纬度”不代表就是高德能直接用坐标。我处理过几次发现有的数据源是 GPS 设备直传有的是百度地图采集百度用的是 BD-09 坐标偏移量更大。如果你拿到的原始数据是 WGS84那映射到高德之前需要转换。高德本身有提供转换能力const AMap this.AMap; const targetPoint [116.39, 39.9]; AMap.convertFrom(targetPoint, gps, (status, result) { if (status complete result.info ok) { console.log(result.locations); } });一次convertFrom处理的数据量有限遇到几千个轨迹点要分批每次大概几十个点转换完再拼接。这个转换最好是拿到数据之后预处理好存成计算后的数组而不是每次巡航都转换一遍。3.2 抽稀轨迹点不是越密越好GPS 设备上报频率高的时候一条轨迹密密麻麻全是点有些点之间距离不到一米。这种情况下直接扔给折线渲染肉眼看不到更精细的路线反而增加绘制压力动画帧率也会掉。我做轨迹回放时一般会做一层简单抽稀相邻点距离小于某个阈值就丢掉。用经纬度距离近似计算就行function thinPoints(points, minDist 0.00005) { if (!points.length) return []; const result [points[0]]; let last points[0]; for (let i 1; i points.length - 1; i) { const dist Math.sqrt( Math.pow(points[i][0] - last[0], 2) Math.pow(points[i][1] - last[1], 2) ); if (dist minDist) { result.push(points[i]); last points[i]; } } result.push(points[points.length - 1]); return result; }这个阈值可以根据城市道路和骑行轨迹来定一般 5 米到 10 米之间。注意最后一点一定要保留不然路线会缺尾看着像被砍了一刀。3.3 轨迹点乱序和缺失点要补顺序问题同样重要。真实设备上报偶尔会乱序或丢包如果不洗数据直接连线会出现回头路甚至有一条线斜穿整个路网。比较粗糙但有效的办法是按时间字段排序后再按距离阈值把异常跳点掐掉。如果两个连续点之间的距离超过了一个合理的最大值说明中间丢失了一段需要标记出来让后端补数据或者用插值方式补出几个中间点否则巡航动画走到那里会瞬移。数据这部分我的原则是“宁可少给不能给错”。点位少可以通过插值点位乱序直接毁了整条路线。4. 动态绘制路线的实现让线跟着车“长”出来数据准备完毕进入核心功能动态绘制路线。这里有两种做法我分开说实际项目按需取舍。4.1 一次性绘制整条路线如果需求只是“展示轨迹并让车子跑”最简单是初始化一条折线把完整路径传进去this.polyline new AMap.Polyline({ map: this.map, path: this.path, // 处理后完整轨迹 strokeColor: #00b3ff, strokeWeight: 4, strokeOpacity: 0.8, lineJoin: round, lineCap: round, showDir: true, zIndex: 120 });一次性绘制优点是渲染效率高高德内部对整个折线有优化。缺点是没有“绘制路线”的动态观感少一点视觉反馈。4.2 动态增量绘制在巡航回调里持续 setPath要做出“路线像生长一样延伸”的效果思路是维护一个drawnPath数组然后随着小车移动不断往数组里 push 新坐标再调用折线对象的setPath更新整条路线。具体实现我在下一节会结合巡航动画一起写因为这两块本质是联动的。这里先理清一个关键点不要每来一个坐标就 setPath 一次那样性能扛不住。高德折线在每次 setPath 都会重新计算、重绘如果是几千次的回调页面直接卡死。我的做法是攒几个点或者在 moving 回调里做节流大概每次 push 三五个点就刷新一次肉眼依然流畅。4.3 静态绘制和动态绘制能不能同时用能。实际项目里有些产品希望背景有一条半透明完整轨迹作为“参考线”同时前景再有一个鲜艳颜色的“已走路线”动态生长。做法就是画两条折线底下一层用完整路径浅灰色半透明上面一层不断 setPath。这样既不丢信息又有动态效果视觉层次也丰富。层次上要注意zIndex控制动态绘制的折线要压在完整轨迹之上不然灰色线会把彩色线盖住。5. 轨迹巡航控制小车前进、暂停、重置与视角联动巡航是整个功能里最花心思的地方。官方提供了marker.moveAlong这种动画方案比自己用定时器移动要顺滑得多而且小车朝向会自动根据路径方向进行调整省掉自己算角度的麻烦事。5.1 启动巡航前的准备工作先创建一辆小车 Markerthis.carMarker new AMap.Marker({ position: this.path[0], icon: new AMap.Icon({ image: require(/assets/car.png), size: new AMap.Size(36, 36), anchor: bottom-center }), offset: new AMap.Pixel(0, 0) }); this.carMarker.setMap(this.map);anchor和offset是图标对齐的关键。你选的车辆图标如果是车头方向最好锚点在中心如果是俯视图中心对准道路线最自然。图标偏了看着就像车子挂在路线上而不是压在路线上。然后初始化已经走过的路径数组this.drawnPath [this.path[0]]; this.polyline.setPath(this.drawnPath);5.2 用 moveAlong 启动巡航同时推进路线绘制高德 Marker 提供了moveAlong方法传入完整坐标数组和速度即可。关键是监听moving事件在这个事件里拿到当前位置和已走过的路径然后推进绘制this.carMarker.on(moving, e { const pos [e.pos.lng, e.pos.lat]; const last this.drawnPath[this.drawnPath.length - 1]; if (last Math.abs(last[0] - pos[0]) 0.000001 Math.abs(last[1] - pos[1]) 0.000001) { return; } this.drawnPath.push(pos); this.polyline.setPath(this.drawnPath); }); this.carMarker.moveAlong(this.path, this.speed);由于moving事件触发频率很高每次都判断一下是否与上一个点重复可以有效减少折线的冗余点。这里还有一个经验如果轨迹点特别密移动速度又比较慢drawnPath会包含大量插值点导致最终折线顶点非常多。可以改成每累计 5 个点才 setPath 一次视觉上完全没有差别性能好很多。启动之后路线的颜色会随着小车向前“生长”效果很直观。5.3 暂停、继续、重置高德的移动动画提供了三个方法这在交互控制里非常省心// 暂停 this.carMarker.pauseMove(); // 继续 this.carMarker.resumeMove(); // 停止 this.carMarker.stopMove();重置的逻辑稍微绕一下。如果直接重新 moveAlong小车会瞬间回到起点需要把drawnPath也重置resetTrack() { this.carMarker.stopMove(); this.drawnPath [this.path[0]]; this.polyline.setPath(this.drawnPath); this.carMarker.setPosition(this.path[0]); this.map.setCenter(this.path[0]); this.map.setZoom(14); }实际项目中暂停和继续要同步控制状态栏文字比如“暂停中”“巡航中”。因为动画方法调用本身是异步的不要连续快速点击暂停继续按钮要做防抖。5.4 视角跟随让车永远在视野中央小车一跑视角不跟就很容易跑出屏幕。有两个方案。方案一是全程固定视角适合轨迹范围小的情况用户一眼能看出全貌。方案二是开启跟随模式把小车保持在视野中心适合轨迹跨好几条街道甚至跨城区的情况。跟随模式直接用setCenter每帧更新地图会一直闪我实测下来会有点恶心。推荐节流更新let lastFollowTime 0; this.carMarker.on(moving, e { const now Date.now(); if (now - lastFollowTime 400) { this.map.setCenter([e.pos.lng, e.pos.lat]); lastFollowTime now; } });400 毫秒的间隔画面既能保持小车在视野内又不会因为频繁 setCenter 导致地图抖动。如果希望更精细可以降到 200 毫秒但不要再低了。5.5 巡航结束状态moveAlong的第三个参数是完成回调可以在里面处理结束逻辑this.carMarker.moveAlong(this.path, this.speed, completed { if (completed) { this.isPlaying false; this.isFinished true; } });顺便说一句moveAlong依赖插件这也是我在地图初始化时把AMap.MoveAnimation加进plugins数组里的原因。少了这个运行时控制台会报找不到方法排查起来容易一脸懵。6. 高频踩坑记录这一节建议直接存下来功能做出来到真正稳定运行中间一定会经历调试。我把自己踩过和帮别人排查过的问题整理成一个速查表按出现频率排了序现象原因解决方案地图白屏控制台无报错容器高度为 0 或容器还没渲染完成就初始化给容器设高度初始化放在 nextTick 后小车不沿路线转向moveAlong 插件未加载在 plugins 里加上 AMap.MoveAnimation路线整体偏移几十米坐标系不是 GCJ-02用 convertFrom 转坐标后再绘制巡航到一半路线出现回头路原始数据乱序按时间排序对距离跳变点做处理折线绘制越来越卡setPath 频率过高或顶点过多节流 setPath对轨迹点做抽稀页面切走再回来地图重新加载很慢组件销毁时未销毁地图实例beforeDestroy 中调用 map.destroy()小车图标悬在路线上方图标锚点设置不正确调整 icon 的 anchor 或 offset暂停时按钮状态错乱点击频率过快动画状态未同步按钮加防抖状态统一用变量控巡航结束后路线还残留小车结束时没有重置 Marker 位置stopMove 后 setPosition 到起点或隐藏初始化地图时偶发 403安全密钥未配置或域名不匹配配置 _AMapSecurityConfig 并在控制台加入当前域名6.1 一组特别容易忽略的配置细节高德折线的展示上showDir属性很好用它会在折线上生成方向箭头对轨迹巡航这种场景非常友好用户能一眼分辨前进方向。但箭头默认每隔一段距离出现一个如果轨迹点过密箭头会非常密集视觉上很乱。抽稀之后问题会明显缓解。另一个是折线两端端点样式。如果是真实道路轨迹建议lineJoin和lineCap都设置成round不然转弯处会出现尖锐的折角尤其在高缩放级别下很难看。6.2 动态绘制路径时的卡顿排查思路如果发现小车在跑但是路线绘制有延迟、肉眼能看出“追不上”的现象大概率是两点问题一是drawnPath数组已经包含了移动动画产生的全部插值点顶点数爆炸二是在 moving 回调里做了耗时操作比如网络请求或者大量 DOM 操作。解决办法一个是节流 setPath另一个是把 moving 回调里的业务逻辑剥离。我见过有人在地图移动回调里直接调用后端接口上报位置结果接口一慢整个动画跟着卡。正确的做法是只在这里更新地图相关状态上报逻辑放到独立定时器里异步处理。6.3 地图销毁后的回调陷阱moveAlong动画进行中用户直接点了返回按钮组件销毁后回调里仍在操作地图实例控制台会报 “Cannot read properties of null” 之类的错误。我的处理办法是在beforeDestroy里先调用stopMove()再销毁地图。同时所有异步回调里加一个this.isDestroyed标记组件销毁时置为 true回调里判断一下再执行。7. 扩展玩法轨迹巡航还能往哪些方向做深基础功能跑通后可以按业务形态继续延伸。这里列几个我实际做过或者拆过需求的方向。第一点位事件联动。配送场景里轨迹不是简单的一条线还会包含“出发”“到达”“停留”等事件巡航到这些点的时候弹窗展示时间、备注、图片甚至播放语音播报。实现思路是用AMap.Marker单独标记事件点在 moving 回调里判断当前位置与事件点的距离小于阈值就触发事件。注意阈值不是经纬度固定值最好根据缩放级别换算不然放大缩小后触发时机不一致。第二多车轨迹同屏。车队监管或者货运行程看板经常要同时回放多辆车的轨迹。每辆车一个 marker独立启动 moveAlong但要注意性能。我建议超过 5 辆车就不要每辆都开平滑动画了可以用定时器直接按固定频率更新位置精度不差CPU 占用低很多。第三播放进度与进度条。给巡航加一个进度条拖动进度条跳转到指定位置。实现上需要按时间或距离把轨迹切成大量小段然后记录 moveAlong 到哪一段。这个比暂停继续复杂在“跳转”要先把 stopMove 掉重新 moveAlong 剩余分段同时把 drawnPath 里已经画过的路径一次性 setPath 上去。第四后端实时轨迹推送。如果是做车辆实时监控后端通过 WebSocket 推送坐标前端把新点追加到路径尾部并保持巡航状态。这种情况下动态绘制和巡航几乎天然融合不太需要 moveAlong更多是维护一个增量坐标队列和一个定时器每收到新点就把 marker 移到最新位置折线尾部追加一段。说一个我自己的体会这类地图功能最花时间的始终是数据准备和状态管理真正的 API 绘制代码反而简单。拿到需求后先花时间把轨迹数据洗好、坐标统一、抽稀调参后面巡航和绘制就是水到渠成的过程。如果一开始就急着让车跑起来后面各种偏移、乱序、卡顿问题会连环炸改起来更痛苦。最后分享一个小建议调试这类功能时准备一份固定的小型模拟轨迹数据比如 20 个点左右放在本地调试页里每次改动后用这份数据验证逻辑通了再换真实数据。这样能把“数据问题”和“代码问题”快速隔离排查效率至少翻一倍。

相关新闻

STM32F103移植W5500 ioLibrary:SPI驱动与socket通信实战

STM32F103移植W5500 ioLibrary:SPI驱动与socket通信实战

简介:面向基于STM32F103RCT6等MINISTM32平台的嵌入式开发者,这套W5500 ioLibrary移植工程包含完整的驱动适配代码,可直接参考使用。W5500是集成SPI接口的硬核以太网控制器,自带TCP/IP协议栈,配合STM32的SPI外设即可实现…

2026/10/17 11:31:27 阅读更多 →
Python 操作 Git 仓库:subprocess 与 GitPython 选型与避坑实战

Python 操作 Git 仓库:subprocess 与 GitPython 选型与避坑实战

我自己的日常里,真正让我下决心系统地用 Python 去操作 Git 仓库,是因为一次“人肉同步十几个仓库”的惨痛经历——明明都是机械式的git add、git commit、git push,但一旦仓库数量上来,手动敲命令就容易漏,某次还因为…

2026/10/17 11:31:27 阅读更多 →
AI Agent落地餐饮数字化:从客服到供应链的全链路实战

AI Agent落地餐饮数字化:从客服到供应链的全链路实战

开头不写AI套路话,直接用场景切入。 上个月我帮一个做连锁餐饮的朋友梳理门店数字化方案,聊到一半他忽然问我:“你说的AI,到底和我们现在用的扫码点餐、ERP进销存有什么区别?不就是换个方式记数据吗?”这个…

2026/10/17 11:31:27 阅读更多 →

最新新闻

lol-skins 中 Battle Bat Vayne 炫彩(Chroma)资源清单与包结构解析

lol-skins 中 Battle Bat Vayne 炫彩(Chroma)资源清单与包结构解析

【免费下载链接】lol-skins Comprehensive collection of League of Legends skins available for custom use. 项目地址: https://gitcode.com/gh_mirrors/lo/lol-skins 点击查看 免费下载 本文基于开源仓库 lol-skins 中的 Battle Bat Vayne 炫彩清单文档&#x…

2026/10/17 13:31:35 阅读更多 →
主题医院重制版 CorsixTH:免费在现代电脑上完整玩回 1997 经典

主题医院重制版 CorsixTH:免费在现代电脑上完整玩回 1997 经典

主题医院重制版 CorsixTH:免费在现代电脑上完整玩回 1997 经典 【免费下载链接】CorsixTH Open source clone of Theme Hospital 项目地址: https://gitcode.com/GitHub_Trending/co/CorsixTH 把 DOSBox 调到第几倍速,《主题医院》的窗口还是卡在…

2026/10/17 13:31:35 阅读更多 →
图像直方图三大应用:均衡化、相似度检测与反向投影实战

图像直方图三大应用:均衡化、相似度检测与反向投影实战

做图像处理的人,应该都遇到过这种画面:一张照片灰蒙蒙的,细节被压在一小段亮度范围里,怎么看都费劲;或者要从一段视频里定位某个目标,盯着RGB值逐像素比对,速度慢还容易误判。这三个问题——对比…

2026/10/17 13:31:35 阅读更多 →
Spark小练习:从环境配置到SQL优化,吃透一次日志分析

Spark小练习:从环境配置到SQL优化,吃透一次日志分析

“Spark---小练习”这个标题,乍看平平无奇,但我太熟悉这个状态了:很多刚学Spark的人,跑完官方文档里的wordcount,就以为自己“会了”,结果一碰到真实数据就露馅——RDD该用map还是flatMap?group…

2026/10/17 13:31:35 阅读更多 →
AI编程工具方法论:从工具泛滥到真正提效的实践指南

AI编程工具方法论:从工具泛滥到真正提效的实践指南

1. 工具泛滥的一年,真正稀缺的是使用工具的方法过去一年,AI 编程工具的量多到让人眼花缭乱。从自动补全到对话式编程,从能自己写测试的 Agent 到能 review 代码的机器人,每隔几周就有新东西冒出来。我身边不少开发者的状态是&…

2026/10/17 13:31:35 阅读更多 →
强化学习策略优化:从单调提升理论到TRPO/PPO工程实践

强化学习策略优化:从单调提升理论到TRPO/PPO工程实践

强化学习学到这个阶段,大部分公式推导和代码实现都能跑通了,但有一类问题始终绕不过去:理论上讲,策略优化的目标应该让性能越改越好,实际训练里却经常出现"越改越差"。这个问题的系统解答,就是 M…

2026/10/17 13:30:35 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →