From 3f43e40ed1a1e9f66b3ad2862da9dbc4b710c712 Mon Sep 17 00:00:00 2001
From: nishiwei <13126973358@163.com>
Date: Fri, 23 Oct 2026 14:09:47 +0800
Subject: [PATCH] 智云3.0机场1适配内容提交

---
 ard-route/src/main/java/com/ard/route/util/InitializationUtils.java |  234 ++++++++++------------------------------------------------
 1 files changed, 40 insertions(+), 194 deletions(-)

diff --git a/ard-route/src/main/java/com/ard/route/util/InitializationUtils.java b/ard-route/src/main/java/com/ard/route/util/InitializationUtils.java
index 747af86..56734ea 100644
--- a/ard-route/src/main/java/com/ard/route/util/InitializationUtils.java
+++ b/ard-route/src/main/java/com/ard/route/util/InitializationUtils.java
@@ -4,10 +4,14 @@
 import com.ard.route.domain.sixhe.ArdRouteActions;
 import com.ard.route.domain.sixhe.ArdRouteChange;
 import com.ard.route.domain.sixhe.ArdRoutePoints;
+import com.ard.route.enums.kml.DroneEnumValueEnums;
+import com.ard.route.enums.kml.PayloadTypeEnums;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
+import static com.ard.route.enums.kml.DroneEnumValueEnums.M350_RTK;
 import static com.ard.route.util.ToolUtils.getDoublePoint;
 
 /**
@@ -17,7 +21,7 @@
 public class InitializationUtils {
 
     // 禅思H20T 公倍数
-    private static final Double CHANSI_H20 = 23.76237623;
+    private static final Double CHANSI_H20T = 23.76237623;
 
     // 禅思H20T 焦距值
     private static final Double CHANSI_H20_FOCUS = 6.83;
@@ -30,14 +34,25 @@
     public UavRouteReq initialization(UavRouteReq uavRouteReq){
         uavRouteReq.setTemplateType("waypoint");
         // 起始点默认航线第一个点
-        if (uavRouteReq.getTakeOffRefPoint().isEmpty()){
+        if (uavRouteReq.getTakeOffRefPoint() == null){
             uavRouteReq.setTakeOffRefPoint(
                     uavRouteReq.getRoutePointList().get(0).getLatitude() + "," +
-                            uavRouteReq.getRoutePointList().get(0).getLongitude() + "," + "0");
+                            uavRouteReq.getRoutePointList().get(0).getLongitude() + "," +
+                            uavRouteReq.getRoutePointList().get(0).getHeight());
         }
         //uavRouteReq.setDroneType(89);
-        uavRouteReq.setSubDroneType(0);
-        uavRouteReq.setPayloadType(43);
+        // 机场1:M30/M30T 使用机身自带双光/三光相机,payloadEnumValue 分别为 52/53,
+        // 不能沿用 H20T(43)。其余机型保持原有逻辑,机场2/3 的航线生成结果不变。
+        if (Objects.equals(DroneEnumValueEnums.M30_M30T.getValue(), uavRouteReq.getDroneType())) {
+            if (uavRouteReq.getSubDroneType() == null) {
+                uavRouteReq.setSubDroneType(0);
+            }
+            uavRouteReq.setPayloadType(Objects.equals(1, uavRouteReq.getSubDroneType())
+                    ? PayloadTypeEnums.M30T.getValue() : PayloadTypeEnums.M30.getValue());
+        } else {
+            uavRouteReq.setSubDroneType(0);
+            uavRouteReq.setPayloadType(43);
+        }
         uavRouteReq.setPayloadPosition(0);
         uavRouteReq.setImageFormat("wide");
         uavRouteReq.setFinishAction("goHome");
@@ -55,8 +70,10 @@
         }
         uavRouteReq.setWaypointTurnReq(waypointTurnReq);
         uavRouteReq.setGimbalPitchMode("usePointSetting");
-        // 变焦数值加工
-        buildZoom(uavRouteReq);
+        if (M350_RTK.getValue().equals(uavRouteReq.getDroneType())) {
+            // 变焦数值加工
+            buildZoom(uavRouteReq);
+        }
         // 修改每个航点的高度
         buildHeight(uavRouteReq);
         // 动作组编号数据加工
@@ -87,9 +104,11 @@
      * 根据起飞点高度减去当前航点高度
      */
     public void buildHeight(UavRouteReq uavRouteReq){
-        double takeOffHeight = getDoublePoint(uavRouteReq.getTakeOffRefPoint(),"alt");
-        for (RoutePointReq routePointReq : uavRouteReq.getRoutePointList()) {
-            routePointReq.setHeight(routePointReq.getHeight() - takeOffHeight);
+        if (!"EGM96".equals(uavRouteReq.getHeightMode())){
+            double takeOffHeight = getDoublePoint(uavRouteReq.getTakeOffRefPoint(),"alt");
+            for (RoutePointReq routePointReq : uavRouteReq.getRoutePointList()) {
+                routePointReq.setHeight(routePointReq.getHeight() - takeOffHeight);
+            }
         }
     }
 
@@ -98,197 +117,24 @@
      */
     private void buildZoom(UavRouteReq uavRouteReq){
         for (RoutePointReq routePointReq : uavRouteReq.getRoutePointList()) {
-            for (ActionGroupReq actionGroupReq : routePointReq.getActionGroupList()) {
-                for (PointActionReq action : actionGroupReq.getActions()) {
-                    if (action.getZoom() != null){
-                        //action.setZoom(action.getZoom() * CHANSI_H20);
-                        action.setZoom(action.getZoom() * CHANSI_H20_FOCUS);
+            if (!routePointReq.getActionGroupList().isEmpty()){
+                for (ActionGroupReq actionGroupReq : routePointReq.getActionGroupList()) {
+                    for (PointActionReq action : actionGroupReq.getActions()) {
+                        if (action.getZoom() != null){
+                            action.setZoom(multiple23(action.getZoom()));
+                        }
                     }
                 }
             }
         }
     }
 
-    /**
-     * 初始化数据
-     */
-    private void initializationSixHe(){
-        ArdRouteChange ardRouteChange = new ArdRouteChange();
-        ardRouteChange.setAutoSpeed(8);
-        ardRouteChange.setFinishedAction(1);
-        ardRouteChange.setHomeHeight(50);
-        //ardRouteChange.setInterests(0);
-        ardRouteChange.setIsSaveEnergyMode(0);
-        ardRouteChange.setLoseAction(0);
-        ardRouteChange.setMaxSpeed(15);
-        ardRouteChange.setSecurityHeight(50);
-        ardRouteChange.setTemplateId(0);
-
-        List<ArdRoutePoints> points = new ArrayList<>();
-        //-----------------------------------------------------
-        ArdRoutePoints ardRoutePoints00 = new ArdRoutePoints();
-        ardRoutePoints00.setDampingDistance(0);
-        ardRoutePoints00.setFlightPathMode(1);
-        ardRoutePoints00.setGroupIndex(0);
-        ardRoutePoints00.setHeading(0);
-        ardRoutePoints00.setHeadingMode(0);
-        ardRoutePoints00.setHeight(50);
-        ardRoutePoints00.setInterestIndex(-1);
-        ardRoutePoints00.setLat(31.11339916);
-        ardRoutePoints00.setLon(103.75851462);
-        ardRoutePoints00.setSafeGohomeFlag(0);
-        ardRoutePoints00.setSpeed(8);
-        List<ArdRouteActions> actions00 = new ArrayList<>();
-        ArdRouteActions ardRouteActions00 = new ArdRouteActions();
-        ardRouteActions00.setParam(10);
-        ardRouteActions00.setSpeakInfo("");
-        ardRouteActions00.setType(1);
-        ardRouteActions00.setWaitTime(2);
-        ArdRouteActions ardRouteActions01 = new ArdRouteActions();
-        ardRouteActions01.setParam(10);
-        ardRouteActions01.setSpeakInfo("");
-        ardRouteActions01.setType(1);
-        ardRouteActions01.setWaitTime(2);
-        ArdRouteActions ardRouteActions02 = new ArdRouteActions();
-        ardRouteActions02.setParam(10);
-        ardRouteActions02.setSpeakInfo("");
-        ardRouteActions02.setType(1);
-        ardRouteActions02.setWaitTime(2);
-        actions00.add(ardRouteActions00);
-        actions00.add(ardRouteActions01);
-        actions00.add(ardRouteActions02);
-        ardRoutePoints00.setActions(actions00);
-
-        //-----------------------------------------------------
-        ArdRoutePoints ardRoutePoints10 = new ArdRoutePoints();
-        ardRoutePoints10.setDampingDistance(0);
-        ardRoutePoints10.setFlightPathMode(1);
-        ardRoutePoints10.setGroupIndex(0);
-        ardRoutePoints10.setHeading(0);
-        ardRoutePoints10.setHeadingMode(0);
-        ardRoutePoints10.setHeight(50);
-        ardRoutePoints10.setInterestIndex(-1);
-        ardRoutePoints10.setLat(31.11339916);
-        ardRoutePoints10.setLon(103.75746538);
-        ardRoutePoints10.setSafeGohomeFlag(0);
-        ardRoutePoints10.setSpeed(8);
-        List<ArdRouteActions> actions10 = new ArrayList<>();
-        ArdRouteActions ardRouteActions10 = new ArdRouteActions();
-        ardRouteActions10.setParam(20);
-        ardRouteActions10.setSpeakInfo("");
-        ardRouteActions10.setType(9);
-        ardRouteActions10.setWaitTime(2);
-        ArdRouteActions ardRouteActions11 = new ArdRouteActions();
-        ardRouteActions11.setParam(40);
-        ardRouteActions11.setSpeakInfo("");
-        ardRouteActions11.setType(6);
-        ardRouteActions11.setWaitTime(2);
-        ArdRouteActions ardRouteActions12 = new ArdRouteActions();
-        ardRouteActions12.setParam(40);
-        ardRouteActions12.setSpeakInfo("");
-        ardRouteActions12.setType(7);
-        ardRouteActions12.setWaitTime(2);
-        ArdRouteActions ardRouteActions13 = new ArdRouteActions();
-        ardRouteActions13.setParam(40);
-        ardRouteActions13.setSpeakInfo("");
-        ardRouteActions13.setType(8);
-        ardRouteActions13.setWaitTime(2);
-        actions10.add(ardRouteActions10);
-        actions10.add(ardRouteActions11);
-        actions10.add(ardRouteActions12);
-        ardRoutePoints10.setActions(actions10);
-
-        //-----------------------------------------------------
-        ArdRoutePoints ardRoutePoints20 = new ArdRoutePoints();
-        ardRoutePoints20.setDampingDistance(0);
-        ardRoutePoints20.setFlightPathMode(1);
-        ardRoutePoints20.setGroupIndex(0);
-        ardRoutePoints20.setHeading(0);
-        ardRoutePoints20.setHeadingMode(0);
-        ardRoutePoints20.setHeight(50);
-        ardRoutePoints20.setInterestIndex(-1);
-        ardRoutePoints20.setLat(31.11250084);
-        ardRoutePoints20.setLon(103.75746538);
-        ardRoutePoints20.setSafeGohomeFlag(0);
-        ardRoutePoints20.setSpeed(8);
-        List<ArdRouteActions> actions20 = new ArrayList<>();
-        ArdRouteActions ardRouteActions20 = new ArdRouteActions();
-        ardRouteActions20.setParam(15);
-        ardRouteActions20.setSpeakInfo("");
-        ardRouteActions20.setType(9);
-        ardRouteActions20.setWaitTime(2);
-        ArdRouteActions ardRouteActions21 = new ArdRouteActions();
-        ardRouteActions21.setParam(3);
-        ardRouteActions21.setSpeakInfo("");
-        ardRouteActions21.setType(10);
-        ardRouteActions21.setWaitTime(2);
-        actions20.add(ardRouteActions20);
-        actions20.add(ardRouteActions21);
-        ardRoutePoints20.setActions(actions20);
-
-        //-----------------------------------------------------
-        ArdRoutePoints ardRoutePoints30 = new ArdRoutePoints();
-        ardRoutePoints30.setDampingDistance(0);
-        ardRoutePoints30.setFlightPathMode(1);
-        ardRoutePoints30.setGroupIndex(0);
-        ardRoutePoints30.setHeading(0);
-        ardRoutePoints30.setHeadingMode(0);
-        ardRoutePoints30.setHeight(60);
-        ardRoutePoints30.setInterestIndex(-1);
-        ardRoutePoints30.setLat(31.11250084);
-        ardRoutePoints30.setLon(103.75851462);
-        ardRoutePoints30.setSafeGohomeFlag(0);
-        ardRoutePoints30.setSpeed(8);
-        List<ArdRouteActions> actions30 = new ArrayList<>();
-        ArdRouteActions ardRouteActions30 = new ArdRouteActions();
-        ardRouteActions30.setParam(1);
-        ardRouteActions30.setSpeakInfo("");
-        ardRouteActions30.setType(2);
-        ardRouteActions30.setWaitTime(2);
-        actions30.add(ardRouteActions30);
-        ardRoutePoints30.setActions(actions30);
-
-        points.add(ardRoutePoints00);
-        points.add(ardRoutePoints10);
-        points.add(ardRoutePoints20);
-        points.add(ardRoutePoints30);
-
-        ardRouteChange.setPoints(points);
+    public static Double multiple23(Double zoom){
+        return zoom * CHANSI_H20T;
     }
 
-//    private ArdRoutePoints buildArdRoutePoints(){
-//        ArdRoutePoints ardRoutePoints1 = new ArdRoutePoints();
-//        ardRoutePoints1.setDampingDistance(0);
-//        ardRoutePoints1.setFlightPathMode(1);
-//        ardRoutePoints1.setGroupIndex(0);
-//        ardRoutePoints1.setHeading(0);
-//        ardRoutePoints1.setHeadingMode(0);
-//        ardRoutePoints1.setHeight(50);
-//        ardRoutePoints1.setInterestIndex(0);
-//        ardRoutePoints1.setLat(31.11339916);
-//        ardRoutePoints1.setLon(103.75851462);
-//        ardRoutePoints1.setSafeGohomeFlag(0);
-//        ardRoutePoints1.setSpeed(8);
-//
-//
-//    }
-
-//    private ArdRouteActions buildArdRouteActions(){
-//        ArdRouteActions ardRouteActions0 = new ArdRouteActions();
-//        ardRouteActions0.setParam(10);
-//        ardRouteActions0.setSpeakInfo("");
-//        ardRouteActions0.setType(1);
-//        ardRouteActions0.setWaitTime(2);
-//        ArdRouteActions ardRouteActions1 = new ArdRouteActions();
-//        ardRouteActions1.setParam(10);
-//        ardRouteActions1.setSpeakInfo("");
-//        ardRouteActions1.setType(1);
-//        ardRouteActions1.setWaitTime(2);
-//        ArdRouteActions ardRouteActions2 = new ArdRouteActions();
-//        ardRouteActions2.setParam(10);
-//        ardRouteActions2.setSpeakInfo("");
-//        ardRouteActions2.setType(1);
-//        ardRouteActions2.setWaitTime(2);
-//    }
+    public static Double divided23(Double zoom){
+        return zoom / CHANSI_H20T;
+    }
 
 }

--
Gitblit v1.9.3