航线管理教程
功能介绍
航线任务管理是用于无人机自主作业的重要功能,通过 MSDK 提供的接口可以实现对航线任务的上传、执行、暂停、恢复以及对航线任务执行状态与航线信息的监听等。航线文件可以定义航线、航点、以及航点任务等,该文件遵循 DJI 自定义的航线文件格式标准(DJI WPML)。
DJI WPML
WPML 航线文件(后称 KMZ)均以 “.kmz” 后缀结尾,其实质是使用 ZIP 格式打包的归档文件。一个标准的 KMZ 解压后,其文件结构展示如下。template.kml 定义业务属性,方便用户进行快速调整编辑。waylines.wpml 定义执行细节。res 文件夹存储辅助资源文件。KMZ 压缩包的名称可以自定义,压缩包名即航线名,其内部的文件夹、kml 文件和 wpml 文件名称必须与以下展示一致。
waypoints_name.kmz
└── wpmz
├── res // 资源文件
├── template.kml // 模板文件
└── waylines.wpml // 执行文件
航线文件格式标准(DJI WPML) 对 KMZ 的字段的介绍逻辑为:
- 仅在 template.kml 文件中使用
- 仅在 waylines.wpml 文件中使用
- 两份文件共用
航线编辑
通过独立库(WPMZ SDK)的形式,对外提供 KMZ 的编辑导入导出、KMZ 上传前的字段静态检查、KML 转换 KMZ 的功能。航线编辑相关接口IWPMZManager的介绍请在 MSDK API Reference文件夹内查看。
与航线编辑相关接口介绍如下图。
- KMZ 生成接口
generateKMZFile()
根据接口传参不同,生成的 KMZ 有些差异。传入经过编辑后的 template 对象,生成的 KMZ 中会包含有效的 template.kml 文件与有效的 waylines.wpml 文件。传入经过编辑后的 waylines 对象,生成的 KMZ 中会包含无效的 template.kml 文件与有效的 waylines.wpml 文件,并且该 KMZ 不支持 DJI Pilot 编辑。 - KMZ 字段的静态检查不包含所有 wayline.kml 中的字段,我们将在接下来的版本中逐渐补充。
- 通过 KML 转换 KMZ 接口
transKMLtoKMZ()
,非 DJI 渠道生成的 KML 文件转换为 KMZ 时,需要提供高度模式。支持的高度模式有 WGS84、EGM96、RELATIVE,RELATIVE 模式仅用于 DJI Pilot 显示,开发者可以忽略。

接口调用流程
MSDK 航线管理 API 调用方式如下图。详细的使用方法请查看 Mobile SDK API 文档中的航线任务管理类 IWaypointMissionManager。
- MSDK 支持从断点处开始、恢复航线任务。
- 断点续飞在 Matrice 30/30T、Mavic 3E/3T/3M 机型上支持。
- 只有调用暂停航线任务接口
pauseMission()
后才能查询到断点信息。 - MSDK 支持查询断点信息,将查到的断点信息作为参数传给开始执行航线任务接口
startMission()
与 恢复航线任务接口resumeMission()
。开发者也可以不查询断点信息,自行创建断点信息对象BreakPointInfo
指定断点用于传参。
.png)