Xiajijian
2025-11-13 5a4168664a6d2d98f505d1f3ced39eaf4b2ed05c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.ard.route.util;
 
import com.ard.route.domain.*;
 
/**
 * 初始化数据
 * 测试数据
 */
public class InitializationUtils {
 
    private static final Double CHANSI_H20 = 23.76237623;
    private static final String WAYPOINT_TURN_MODE_DEFAULT = "toPointAndStopWithDiscontinuityCurvature";
 
    /**
     * 初始化KMZ 默认数据
     */
    public UavRouteReq initialization(UavRouteReq uavRouteReq){
        uavRouteReq.setTemplateType("waypoint");
        // 起始点默认航线第一个点
        if (uavRouteReq.getTakeOffRefPoint().isEmpty()){
            uavRouteReq.setTakeOffRefPoint(
                    uavRouteReq.getRoutePointList().get(0).getLatitude() + "," +
                            uavRouteReq.getRoutePointList().get(0).getLongitude() + "," + "0");
        }
        //uavRouteReq.setDroneType(89);
        uavRouteReq.setSubDroneType(0);
        uavRouteReq.setPayloadType(43);
        uavRouteReq.setPayloadPosition(0);
        uavRouteReq.setImageFormat("wide");
        uavRouteReq.setFinishAction("goHome");
        uavRouteReq.setExitOnRcLostAction("goBack");
        //uavRouteReq.setGlobalHeight(100.0);
        //uavRouteReq.setAutoFlightSpeed(5.0);
        WaypointHeadingReq waypointHeadingReq = new WaypointHeadingReq();
        waypointHeadingReq.setWaypointHeadingMode("followWayline");
        uavRouteReq.setWaypointHeadingReq(waypointHeadingReq);
        WaypointTurnReq waypointTurnReq = new WaypointTurnReq();
        if (uavRouteReq.getGlobalWaypointTurnMode() != null){
            waypointTurnReq.setWaypointTurnMode(uavRouteReq.getGlobalWaypointTurnMode());
        }else {
            waypointTurnReq.setWaypointTurnMode("toPointAndStopWithDiscontinuityCurvature");
        }
        uavRouteReq.setWaypointTurnReq(waypointTurnReq);
        uavRouteReq.setGimbalPitchMode("usePointSetting");
        //buildZoom(uavRouteReq);
        return uavRouteReq;
    }
 
    /**
     * 变焦动作加工
     */
    private UavRouteReq 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);
                    }
                }
            }
        }
        return uavRouteReq;
    }
}