# dji_vue
**Repository Path**: guipie/dji_vue
## Basic Information
- **Project Name**: dji_vue
- **Description**: 大疆(Dji)上云运营前端,搭配 dji‑server 后端使用,支持大疆机场1,2,3(dock1,2,3)上云,pilot上云,实现无人机状态可视化、飞行指令下发、实时视频流播放 持续迁移开发中.....
- **Primary Language**: TypeScript
- **License**: GPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2026-02-26
- **Last Updated**: 2026-10-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: DJI, 大疆, 上云, 机场1-2-3, pilot
## README
# dji_vue
**大疆机场上云平台 · 后台运维管理端**
面向大疆机场 / 无人机的 Web 管理后台:设备台账、航线管理、飞行区绘制、直播
、告警与台账维护。通常与 [dji\_server](https://github.com/guipie/dji_server) 后端配套使用。






---
## 效果截图
---
## 这是什么
大疆官方提供了上云 API,但服务端需要自己实现:
- **云司空 2** 闭源,无法二次开发
- 官方开源的 `Cloud-API-Demo` 已于 2025-04-10 停止维护,且只是协议演示、不落库、不上生产
`dji_vue` 是配套 [dji_server](https://gitee.com/guipie/dji_server) 的**后台运维管理端**,定位偏「管理」而非「实时指挥」:
- 偏**低频、重数据**:设备台账、文件台账、航线任务、告警记录、媒体文件
- 地图操作(飞行区 / 作业区绘制)走 **Cesium 三维**
- 实时性要求不高的场景(看当前状态、回放进度)走 HTTP 轮询 + SignalR 补充
> 如果你要的是**实时态势看板 / DRC 指令飞行 / 直播墙**,请看
>
> [dji-cloud-console](../dji-cloud-console)(Tauri 桌面 + 高德 + WebRTC)。
---
## 功能一览
| 模块 | 路径 | 能力 |
| -------- | ----------------------------------------------------- | ------------------------------ |
| 机场管理 | `views/main/djiDock` | 机场台账、在线状态、指令下发(开舱 / 启停) |
| 设备管理 | `views/main/djiDevice` | 无人机 / 遥控器台账与子设备挂载关系 |
| 设备字典 | `views/main/djiDeviceEnum`
`djiDeviceCameraEnum` | 机型 / 相机型号字典维护(22 种机型 + 48 种相机) |
| 在线设备 | `views/main/djiDeviceOnline` | 实时在线总览 |
| **飞行区域** | `views/main/djiFlightArea` | **Cesium 三维绘制作业区 / 禁飞区**,见下方专节 |
| 航线管理 | `views/main/djiWayline` | 航线文件(WPML/KMZ)台账、任务下发与进度 |
| 直播 | `views/main/djiLive` | 对接自建 SRS,flv.js / hls.js 拉流播放 |
| 媒体文件 | `views/main/djiMedia` | 机场与无人机拍摄的媒体清单与下载 |
| HMS 告警 | `views/main/djiHms` | 设备健康告警分级查看 |
| 空域感知 | `views/main/djiAirSense` | 附近载人飞机告警 |
| 远程日志 | `views/main/djiLog` | 设备上报的日志文件清单与解析 |
| OTA 升级 | `views/main/djiOta` | 固件升级任务下发与结果 |
| 工作空间 | `views/main/djiWorkspace`
`djiWorkspaceUser` | 多租户空间与成员管理 |
---
## 示例-飞行区域绘制
`views/main/djiFlightArea` 是最能体现本项目价值的部分 —— **在 Cesium 三维地球上直接画出作业区与禁飞区**,
并导出成 DJI 设备可以识别的格式。
| 能力 | 说明 |
| ------ | ----------------------------------------------- |
| 两种区域类型 | **作业区(dfence,圈内可飞)** / **禁飞区(nfz,圈外可飞)** |
| 两种几何 | 多边形(3~255 顶点)与圆形(中心点 + 半径) |
| 三维绘制 | 左键逐点打个多边形,点「完成」闭合;圆形支持拖拽定半径 |
| 量算 | 基于 `@turf/turf` 实时算面积 / 周长 / 顶点数 |
| 导入导出 | 导出 DJI 标准 `FeatureCollection`(GeoJSON),可直接进上云流程 |
| 后端校验 | 半径 ≥ 10m、顶点数、是否闭合、坐标范围 —— 违规逐条给出中文原因 |
相关实现:`src/utils/cesium/flyZone.ts`、`src/utils/cesium/index.ts`、后端
`DjiFlyZoneService`(提供 `exportDji` 接口生成设备侧格式)。
> **多内核切换注意**:Cesium 的 `viewer` 在全局复用。从其他 Cesium 页面跳到飞行区时,
>
> 若复用了绑定在已销毁容器上的旧 viewer,会得到一张空白地图。
>
> 当前实现按 `viewer.container === 当前容器元素` 判定,不一致就先销毁再重建。
---
## 技术选型
| 维度 | 选型 | 备注 |
| ---- | ---------------------------------- | -------------------------- |
| 框架 | **Vue 3.5 + TypeScript 5.9** | 组合式 API,`