From 94a6e4e4bc39153e64f8599e626475c4ce5bdb88 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Tue, 16 Jul 2024 13:49:01 +0800
Subject: [PATCH] 修改喊话功能的重新喊话和音频展示接口,新增缩略图展示接口
---
src/main/java/com/dji/sample/patches/xml/mode/XMLTemplateModel.java | 46 +++++++++++++++++++++++++++++-----------------
1 files changed, 29 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/dji/sample/patches/xml/mode/XMLTemplateModel.java b/src/main/java/com/dji/sample/patches/xml/mode/XMLTemplateModel.java
index 893c620..56c6b0f 100644
--- a/src/main/java/com/dji/sample/patches/xml/mode/XMLTemplateModel.java
+++ b/src/main/java/com/dji/sample/patches/xml/mode/XMLTemplateModel.java
@@ -2,6 +2,7 @@
import com.dji.sample.patches.model.entity.LotInfo;
import com.dji.sample.patches.utils.GeoToolsUtil;
+import com.dji.sample.patches.utils.PointPO;
import com.dji.sample.patches.xml.mode.share.ActionGroup;
import com.dji.sample.patches.xml.mode.share.ActionMode;
import com.dji.sample.patches.xml.mode.share.ActionTrigger;
@@ -46,14 +47,15 @@
* @param lotInfos
* @return
*/
- public static XMLTemplateModel init(Coordinate[] coordinates,List<LotInfo> lotInfos) {
+ public static XMLTemplateModel init(List<PointPO> coordinates, List<LotInfo> lotInfos) {
Folder folder = FolderUtils.setFloder();
List<Placemark> placemarkList = new ArrayList<>();
int i = 0;
- for (Coordinate c:coordinates) {
+ for (PointPO pointPO:coordinates) {
if (i != 0) {//去除第一个航点
+ Coordinate c = pointPO.getCoordinate();
Placemark placemark = PlacemarkUtils.setPlacemark(c.x + "," + c.y);
// 增加事件组
@@ -67,25 +69,35 @@
actionGroup.setActionTrigger(at);
// 开始增加事件
List<ActionMode> list = new ArrayList<>();
+
+ //拍照事件
ActionMode actionMode = new ActionMode();
- actionMode.setActionId(0);
+ actionMode.setActionId(2);
actionMode.setActionActuatorFunc(CameraActionEnum.TAKE_PHOTO.getDescription());//拍照事件
- // 计算获取图斑编号
- int quotient = i / 4;
- if (i % 4 != 0) { // 检查是否有余数
- quotient++; // 如果有余数,商加1
- }
- if (quotient == 0) quotient = 1;
+// actionMode.setActionActuatorFuncParam(ActionUtils.setTakePhoto(lotInfos.get(quotient-1).getDkbh()));
+ // 设置媒体文件名称后缀
+ actionMode.setActionActuatorFuncParam(ActionUtils.setTakePhoto(lotInfos.get(pointPO.getIndex()).getDkbh() + "~" + lotInfos.get(pointPO.getIndex()).getTaskId()));
+// actionMode.setActionActuatorFuncParam(ActionUtils.setTakePhoto("测试"));
- actionMode.setActionActuatorFuncParam(ActionUtils.setTakePhoto(lotInfos.get(quotient-1).getDkbh()));
- list.add(actionMode);
-
+ //云台旋转事件
ActionMode actionMode2 = new ActionMode();
actionMode2.setActionId(1);
- actionMode2.setActionActuatorFunc(CameraActionEnum.GIMBAL_ROTATE.getDescription());//拍照事件
- actionMode2.setActionActuatorFuncParam(ActionUtils.setGimbalRotate());
- list.add(actionMode2);
+ actionMode2.setActionActuatorFunc(CameraActionEnum.GIMBAL_ROTATE.getDescription());//旋转云台
+ //设置转动角度
+ double bearing = GeoToolsUtil.bearing(pointPO.getCoordinate().y,pointPO.getCoordinate().x,pointPO.getCentro().y,pointPO.getCentro().x);
+// System.out.println("角度:" + bearing);
+ actionMode2.setActionActuatorFuncParam(ActionUtils.setGimbalRotate(bearing));
+
+ // 飞行器偏航事件
+ ActionMode actionModeFxqph = new ActionMode();
+ actionModeFxqph.setActionId(0);
+ actionModeFxqph.setActionActuatorFunc(CameraActionEnum.ROTATE_YAW.getDescription());//飞行器偏航
+ actionModeFxqph.setActionActuatorFuncParam(ActionUtils.setRotateYaw(bearing));
+
+ list.add(actionModeFxqph);//添加飞行器偏航
+ list.add(actionMode2);//添加云台旋转
+ list.add(actionMode);//添加拍照
actionGroup.setActions(list);
placemark.setActionGroup(actionGroup);
@@ -102,7 +114,7 @@
.author("Aix")
.createTime(String.valueOf(System.currentTimeMillis()))
.updateTime(String.valueOf(System.currentTimeMillis()))
- .missionConfig(MissionConfigUtils.setMissionConfig(coordinates[0].y + "," + coordinates[0].x + ",0"))
+ .missionConfig(MissionConfigUtils.setMissionConfig(coordinates.get(0).getCoordinate().y + "," + coordinates.get(0).getCoordinate().x + ",0"))
.folder(folder)
.build();
@@ -128,7 +140,7 @@
double airportLat = 28.624514734; // 机场纬度
double airportLon = 115.856725497; // 机场经度
// 解析图斑生成航点,按顺序返回
- Coordinate[] coordinates = GeoToolsUtil.getRoutePointOrder(list, airportLat, airportLon);
+ List<PointPO> coordinates = GeoToolsUtil.getRoutePointOrder(list, airportLat, airportLon);
// 初始化模板对象
XMLTemplateModel xmlModel = XMLTemplateModel.init(coordinates, list);
--
Gitblit v1.9.3