nishiwei
5 days ago 3f43e40ed1a1e9f66b3ad2862da9dbc4b710c712
ard-route/src/main/java/com/ard/route/util/RouteFileUtils.java
@@ -143,7 +143,9 @@
        }else {
            kmlMissionConfig.setGlobalTransitionalSpeed("15");
        }
        kmlMissionConfig.setGlobalRTHHeight("100");
        if (kmlParams.getHeightMode().equals(HeightModeEnums.RELATIVE_TO_START_POINT.getValue())){
            kmlMissionConfig.setGlobalRTHHeight("100");
        }
        kmlMissionConfig.setTakeOffRefPoint(kmlParams.getTakeOffRefPoint());
        kmlMissionConfig.setDroneInfo(buildKmlDroneInfo(kmlParams.getDroneType(), kmlParams.getSubDroneType()));
        kmlMissionConfig.setPayloadInfo(buildKmlPayloadInfo(kmlParams.getPayloadType(), kmlParams.getPayloadPosition()));
@@ -165,6 +167,12 @@
    public static KmlPayloadInfo buildKmlPayloadInfo(Integer payloadType, Integer payloadPosition) {
        KmlPayloadInfo kmlPayloadInfo = new KmlPayloadInfo();
        kmlPayloadInfo.setPayloadEnumValue(String.valueOf(payloadType));
        // 机场1:M30/M30T 的 WPML 需要 payloadSubEnumValue,否则机场侧校验可能不通过;
        // 其余机型保持原有输出,不影响机场2/3。
        if (Objects.equals(PayloadTypeEnums.M30.getValue(), payloadType)
                || Objects.equals(PayloadTypeEnums.M30T.getValue(), payloadType)) {
            kmlPayloadInfo.setPayloadSubEnumValue("0");
        }
        kmlPayloadInfo.setPayloadPositionIndex(String.valueOf(payloadPosition));
        return kmlPayloadInfo;
    }
@@ -175,13 +183,28 @@
        kmlFolder.setAutoFlightSpeed(String.valueOf(kmlParams.getAutoFlightSpeed()));
        if (StringUtils.equals(fileType, FileTypeConstants.KML)) {
            kmlFolder.setTemplateType(kmlParams.getTemplateType());
            kmlFolder.setWaylineCoordinateSysParam(buildKmlWayLineCoordinateSysParam(kmlParams.getTemplateType(), HeightModeEnums.RELATIVE_TO_START_POINT.getValue(),
                    String.valueOf(kmlParams.getGlobalHeight())));
            if (kmlParams.getHeightMode().equals(HeightModeEnums.RELATIVE_TO_START_POINT.getValue())){
                kmlFolder.setWaylineCoordinateSysParam(
                        buildKmlWayLineCoordinateSysParam(
                                kmlParams.getTemplateType(),
                                HeightModeEnums.RELATIVE_TO_START_POINT.getValue(),
                                String.valueOf(kmlParams.getGlobalHeight())));
            }else if(kmlParams.getHeightMode().equals(HeightModeEnums.EGM96.getValue())){
                kmlFolder.setWaylineCoordinateSysParam(
                        buildKmlWayLineCoordinateSysParam(
                                kmlParams.getTemplateType(),
                                HeightModeEnums.EGM96.getValue(),
                                String.valueOf(kmlParams.getGlobalHeight())));
            }
            kmlFolder.setPayloadParam(buildKmlPayloadParam(kmlParams));
        }
        if (StringUtils.equals(fileType, FileTypeConstants.WPML)) {
            kmlFolder.setWaylineId("0");
            kmlFolder.setExecuteHeightMode(ExecuteHeightModeEnums.RELATIVE_TO_START_POINT.getValue());
            if (kmlParams.getHeightMode().equals(HeightModeEnums.RELATIVE_TO_START_POINT.getValue())){
                kmlFolder.setExecuteHeightMode(ExecuteHeightModeEnums.RELATIVE_TO_START_POINT.getValue());
            } else if (kmlParams.getHeightMode().equals(HeightModeEnums.EGM96.getValue())) {
                kmlFolder.setExecuteHeightMode(ExecuteHeightModeEnums.WGS84.getValue());
            }
            if (CollectionUtil.isNotEmpty(kmlParams.getStartActionList())) {
                KmlActionGroup kmlActionGroup = new KmlActionGroup();
                kmlActionGroup.setAction(getKmlActionList(kmlParams.getStartActionList(), kmlParams));