| | |
| | | }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())); |
| | |
| | | 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; |
| | | } |
| | |
| | | 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)); |