返回工作笔记
NOTE ARCHIVE现场记录项目复盘2026-08-15
无人机GIS

正射任务和普通航拍任务,不只是拍照方式不同

正射从立项起就和普通航拍是两套逻辑:重叠率、航线、地面控制点、空三、成果精度,差别从一开始就埋下了。

Clark 更新于 2026-08-31 阅读约 6 分钟 阅读 3
阅读导航

这个问题从哪里来

客户想“顺便”在做普通航拍的时候出一个正射图,以为只是换个拍照方式的事。等到算重叠率、控点、空三精度的时候,才发现两者的技术栈几乎不交叉。

当时真正难的地方

  • 航线与重叠率:正射要求高重叠,普通航拍通常不要求。
  • 地面控制点:正射的精度上限由像控点质量决定,而普通航拍几乎不布控。
  • 空三:正射要跑空三解算,普通航拍只做抽帧或存档。
  • 成果精度:正射有明确的地面分辨率与平面精度指标,普通航拍只看画面是否可用。
任务目标最容易忽略的前提
普通航拍看得清拍摄角度和素材完整性
正射任务可量测重叠率、控点、坐标系

正射任务是在生产一个可测的地理产品,普通航拍只是拍一段能看的影像。生产产品就要谈精度、谈坐标系、谈质检。

从 HTML 原型到真接口,走的是先假后真的路

接手一个正射成果模块时,我们没等后端接口,而是走了一条“先假后真”的路径:

HTML 原型 → 页面与交互拆解 → 接口/数据库文档 → Mock 数据 → 真实接口对接 → 问题修复与交互优化

过程中的几个教训很具体:

  • 进度体系会改:一开始是简单的阶段,后来改成 0/25/40/60/75/100 六级。如果前端用 progress 去推导环节名称,进度一变就要全局返工。正确做法是把环节信息交给出接口的数据表去驱动,前端只展示,不推导。
  • 响应格式别默认统一:这个接口返回 status/desc,另一个模块返回 code/msg。以实际响应为准,统一用 response.status === 0 判断 success,别按猜的格式写。
  • 初始化时序的坑:Vue <script setup>const 有暂时性死区,watch{ immediate: true } 时回调立刻执行,如果回调用了后声明的函数就会报 Cannot access ... before initialization。依赖函数要声明在 watch 之前,或拆成独立 watch。
  • 刷新别破坏交互状态:刷新列表后要保留用户已展开的卡片,用参数区分“首次加载”和“刷新”,而不是无条件重置 UI。

先假后真的意义,是让页面、流程、字段先达成共识,再等后端。但“假”的数据结构必须按接口文档来搭,否则切真的时候又得返工一遍。

可复用经验

  • 接正射需求先问三件事:用途、精度、坐标系。
  • 把重叠率、GSD、控点密度写进任务书,作为验收依据。
  • 普通航拍顺手要正射,要明确这只是“参考影像”能否接受,否则要按正射另算工时。

留给下次

想整理一张“正射 vs 普通航拍”的最小差距清单,和同事一起把报价前的澄清问题固定下来。