面状航线自动拼接需求说明
背景与目标
当前在建工程项目详情原型中,正射成果处理已经支持巡飞完成后的人工处理流程:下载照片数据、上传数据、开启切片服务、发布服务。结合面状航线的飞行参数配置,需要在创建或查看面状航线任务时新增“是否自动拼接”开关,用于决定巡飞完成后系统是否自动进入拼接处理。
本需求目标是:
- 在“面状航线飞行参数”中展示并保存“是否自动拼接”配置。
- 当“是否自动拼接”为“是”时,巡飞完成后沿用原自动拼接逻辑。
- 当“是否自动拼接”为“否”时,巡飞完成后进入人工处理流程,由用户下载照片数据、上传数据后再开启切片服务。
- 正射成果流程需要能追踪巡飞任务、照片数据、拼接数据、切片服务与发布状态。
当前流程
当前 HTML 原型文件为 [ID已隐藏].html,其中正射成果页已包含以下人工处理状态和动作:
- 状态字段:
photosDownloaded:是否已下载照片数据。dataUploaded:是否已上传拼接数据。progress = 50:巡飞数据处理阶段;完成照片数据下载和拼接数据上传后进入待切片状态。progress = 75:切片服务已开启。progress = 100:服务发布完成。
- 页面动作:
download-photos:下载照片数据。upload-data:上传数据。start-slice:开启切片服务。publish-service:发布服务。export-pdf:导出正射成果处理报告 PDF。
当前人工流程约束为:未下载照片数据前不能上传数据,未上传数据前不能开启切片服务。
新增需求范围
本次新增范围限定为“面状航线”的飞行参数配置与正射成果后续处理分支。
新增字段:
| 字段 | 字段名 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| 是否自动拼接 | autoStitch | Boolean | true | 控制巡飞完成后是否自动进入拼接流程 |
展示位置:
- 在“飞行参数”卡片底部展示。
- 位于“航向重叠率”“旁向重叠率”之后。
- 展示形式为开关按钮,右侧显示“是/否”。
飞行参数卡片应完整展示以下字段:
| 参数 | 示例值 | 说明 |
|---|---|---|
| 航线总长 | 1.92km | 面状航线规划后的总飞行长度 |
| 飞行时长 | 6.49min | 预计任务飞行时间 |
| 拍摄照片 | 66张 | 预计或实际采集照片数量 |
| 覆盖面积 | 84.75亩 | 面状航线覆盖范围面积 |
| GSD地面分辨率 | 7 cm/px | 影像地面分辨率 |
| 飞行高度 | 100 m | 航线飞行高度 |
| 飞行速度 | 10 m/s | 航线飞行速度 |
| 主航线角度 | 0° | 面状航线主方向角度 |
| 航向重叠率 | 75% | 航向照片重叠率 |
| 旁向重叠率 | 65% | 旁向照片重叠率 |
| 是否自动拼接 | 是/否 | 新增配置项 |
功能设计
1. 飞行参数配置
- 用户在配置面状航线时,可设置“是否自动拼接”。
- 默认值为“是”,保持现有自动拼接逻辑不受影响。
- 开关状态需要随任务保存,任务详情回显时显示保存后的值。
- 仅面状航线展示该配置;其他航线类型是否展示待确认。
2. 自动拼接为“是”
当 autoStitch = true:
- 巡飞任务完成后,系统自动触发照片拼接处理。
- 正射成果页不要求用户手动下载照片数据和上传拼接数据。
- 系统自动生成正射成果记录,并进入后续切片服务、服务发布流程。
- 如自动拼接失败,需要展示失败状态与失败原因,并允许人工介入处理。
3. 自动拼接为“否”
当 autoStitch = false:
- 巡飞任务完成后,系统在正射成果页生成待处理记录。
- 页面展示“巡飞数据处理”区域,包含:
- 已完成巡飞。
- 下载照片数据。
- 上传拼接数据。
- 开启切片服务。
- 用户点击“下载照片数据”后,
photosDownloaded = true。 - 用户完成上传后,
dataUploaded = true。 - 只有
photosDownloaded = true且dataUploaded = true时,才允许点击“开启切片服务”。 - 开启切片服务后,状态进入
progress = 75。 - 服务发布完成后,状态进入
progress = 100。
业务流程
自动拼接流程
- 用户创建面状航线任务,并保持“是否自动拼接 = 是”。
- 无人机按面状航线执行巡飞任务。
- 巡飞完成后,系统接收照片数据。
- 系统自动进入正射拼接处理。
- 拼接完成后,生成正射成果记录。
- 系统或用户继续开启切片服务。
- 切片服务完成后发布成果服务。
- 项目详情页正射成果状态更新为已完成或进行中。
人工拼接流程
- 用户创建面状航线任务,并设置“是否自动拼接 = 否”。
- 无人机按面状航线执行巡飞任务。
- 巡飞完成后,系统生成正射成果待处理记录。
- 用户进入项目详情页的“正射成果”页签。
- 用户点击“下载照片数据”,下载巡飞照片包。
- 用户在外部完成拼接或数据处理。
- 用户点击“上传数据”,上传拼接后的成果数据。
- 上传完成后,系统允许用户点击“开启切片服务”。
- 用户开启切片服务,状态更新为
progress = 75。 - 用户发布服务,状态更新为
progress = 100。 - 用户可在正射成果记录中点击“导出PDF”,导出当前成果处理报告,用于留档、汇报或线下流转。
数据字段建议
面状航线任务字段
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
routeId | String | 是 | 航线任务ID |
routeType | String | 是 | 航线类型,面状航线建议为 polygon |
autoStitch | Boolean | 是 | 是否自动拼接 |
flightLength | Number | 否 | 航线总长,单位建议为米 |
flightDuration | Number | 否 | 飞行时长,单位建议为秒 |
photoCount | Number | 否 | 预计或实际照片数量 |
coverageArea | Number | 否 | 覆盖面积,单位建议为平方米,前端可换算为亩 |
gsd | Number | 否 | GSD地面分辨率,单位 cm/px |
flightHeight | Number | 否 | 飞行高度,单位米 |
flightSpeed | Number | 否 | 飞行速度,单位 m/s |
mainRouteAngle | Number | 否 | 主航线角度,单位度 |
forwardOverlap | Number | 否 | 航向重叠率,百分比 |
sideOverlap | Number | 否 | 旁向重叠率,百分比 |
正射成果处理字段
| 字段名 | 类型 | 说明 |
|---|---|---|
orthoResultId | String | 正射成果记录ID |
routeId | String | 关联航线任务ID |
autoStitch | Boolean | 继承航线任务的自动拼接配置 |
photosDownloaded | Boolean | 人工流程中是否已下载照片数据 |
dataUploaded | Boolean | 人工流程中是否已上传拼接数据 |
progress | Number | 处理进度,建议使用 25/50/75/100 |
status | String | 待处理、进行中、已完成、失败 |
photoPackageUrl | String | 巡飞照片包下载地址 |
uploadedDataId | String | 上传后的成果数据ID |
sliceServiceId | String | 切片服务ID |
publishedServiceUrl | String | 发布后的服务地址 |
pdfReportUrl | String | 已生成的 PDF 报告地址,未生成时为空 |
pdfExportedAt | DateTime | 最近一次导出 PDF 的时间 |
PDF 报告内容
导出的 PDF 应至少包含以下内容:
- 项目名称、项目位置、土地用途、占地面积等基础信息。
- 面状航线任务信息,包括航线总长、飞行时长、拍摄照片、覆盖面积、GSD、飞行高度、飞行速度、主航线角度、航向重叠率、旁向重叠率、是否自动拼接。
- 正射成果处理信息,包括自动/人工拼接方式、处理进度、当前状态、巡飞完成时间、巡飞数据处理完成时间、切片服务状态、发布服务状态。
- 人工流程下需包含照片数据下载状态、上传数据状态、上传文件名称或数据ID。
- 成果预览图或缩略图,至少展示一张正射成果预览或巡飞照片缩略图。
- 导出时间和导出人。
PDF 文件命名建议:
{项目名称}-{成果日期}-正射成果报告.pdf
页面展示规则
- “是否自动拼接”开关默认开启,显示“是”。
- 开关关闭时显示“否”,需要在保存任务后生效。
- 任务详情页需要回显保存后的开关状态。
- 正射成果页根据
autoStitch决定展示分支:autoStitch = true:展示自动拼接状态,不展示人工下载/上传阻塞按钮。autoStitch = false:展示人工处理步骤和按钮。
- 人工处理流程中:
- 未下载照片数据时,“上传数据”置灰不可用。
- 未上传数据时,“开启切片服务”置灰不可用。
- 下载、上传、开启切片、发布服务每一步都应有明确状态反馈。
- 正射成果记录中展示“导出PDF”按钮。
- 当记录已进入正射成果处理阶段后允许导出。
- 若成果仍无任何照片、预览图或处理信息,应提示“暂无可导出的成果数据”。
- PDF 生成成功后应给出下载反馈,并记录最近导出时间。
- 自动拼接失败时,应显示失败原因,并提供人工处理入口,具体交互待确认。
验收标准
- 面状航线飞行参数卡片中新增“是否自动拼接”开关,位置在重叠率字段之后。
- 新建面状航线任务时,
autoStitch默认值为true。 - 用户修改开关并保存后,任务详情能正确回显“是/否”。
- 当
autoStitch = true时,巡飞完成后系统自动进入拼接流程,不要求用户下载照片并上传数据。 - 当
autoStitch = false时,巡飞完成后正射成果页显示人工处理步骤。 - 人工流程中,未下载照片数据前不能上传数据。
- 人工流程中,未上传数据前不能开启切片服务。
- 点击“开启切片服务”后,正射成果进度更新为
75。 - 点击“发布服务”后,正射成果进度更新为
100。 - 正射成果记录可以追溯到对应面状航线任务、巡飞照片数据、上传成果数据和服务发布结果。
- 点击“导出PDF”后,系统能生成并下载正射成果报告 PDF。
- PDF 内容应包含项目基础信息、飞行参数、是否自动拼接、处理进度、成果预览、导出时间和导出人。
- 当成果数据不足以生成 PDF 时,系统应给出明确提示,不生成空白或缺关键内容的 PDF。
待确认事项
- “是否自动拼接”是否只对面状航线生效,还是所有航线类型都需要支持。
- 自动拼接失败后的人工介入入口,是回到同一条正射成果记录,还是新建人工处理记录。
- 自动拼接完成后是否自动开启切片服务,还是仍由用户手动点击“开启切片服务”。
- 照片数据包和上传成果数据的文件格式、大小限制、校验规则待接口确认。
progress = 25/50/75/100是否沿用为正式状态编码,还是仅作为原型展示进度。- PDF 报告是否需要固定模板、盖章页、二维码、防篡改水印或审批签字信息。