1.修改yml文件默认配置。
2.航线文件增加飞向首航点模式和全局航线速度。
3.代码格式整理。
4.修改生成kmz文件默认值。
5 files modified
57 ■■■■■ changed files
README.md 2 ●●●●● patch | view | raw | blame | history
ard-admin/src/main/resources/application-prod.yml 10 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/domain/kml/KmlParams.java 13 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java 9 ●●●●● patch | view | raw | blame | history
ard-route/src/main/java/com/ard/route/util/RouteFileUtils.java 23 ●●●●● patch | view | raw | blame | history
README.md
@@ -5,7 +5,7 @@
## 平台简介
这是一套基于六合协议的无人机平台。
这是一套基于边缘服务器协议的无人机平台。
* 前端采用Vue、Element UI。
* 后端采用Spring Boot、Spring Security、Redis & Jwt。
ard-admin/src/main/resources/application-prod.yml
@@ -79,13 +79,3 @@
  expire: 3600
  region: us-east-1
  object-dir-prefix: wayline
# 是否是本地测试环境 true / false
isLocal: false
# 本地KMZ上传的路径
kmz:
  path: KmzFile/kmz/
MinioKmz:
  path: kmz
ard-route/src/main/java/com/ard/route/domain/kml/KmlParams.java
@@ -89,7 +89,18 @@
     */
    private MappingTypeReq mappingTypeReq;
    private List<RoutePointInfo> routePointList;
    /**
     * 飞向首航点模式
     * safely:安全模式
     * pointToPoint:倾斜飞行模式
     */
    private String flyToWaylineMode;
    /**
     * 全局航线速度
     */
    private Double globalTransitionalSpeed;
}
ard-route/src/main/java/com/ard/route/service/impl/UavRouteServiceImpl.java
@@ -48,14 +48,11 @@
@Service
public class UavRouteServiceImpl implements UavRouteService {
    @Value("${isLocal}")
    private Boolean isLocal;
    private Boolean isLocal = false;
    @Value("${kmz.path}")
    private String localFilePath;
    private String localFilePath = "KmzFile/kmz/";
    @Value("${MinioKmz.path}")
    private String kmzPath;
    private String kmzPath = "kmz";
    @Resource
    private OssServiceContext ossService;
ard-route/src/main/java/com/ard/route/util/RouteFileUtils.java
@@ -100,7 +100,6 @@
        zipOutputStream.closeEntry(); // 关闭条目
    }
    public static KmlInfo buildKml(KmlParams kmlParams) {
        KmlInfo kmlInfo = new KmlInfo();
        kmlInfo.setDocument(buildKmlDocument(FileTypeConstants.KML, kmlParams));
@@ -116,7 +115,7 @@
    public static KmlDocument buildKmlDocument(String fileType, KmlParams kmlParams) {
        KmlDocument kmlDocument = new KmlDocument();
        if (StringUtils.equals(fileType, FileTypeConstants.KML)) {
            kmlDocument.setAuthor("Cleaner");
            kmlDocument.setAuthor("Ard-Creator");
            kmlDocument.setCreateTime(String.valueOf(DateUtil.current()));
            kmlDocument.setUpdateTime(String.valueOf(DateUtil.current()));
        }
@@ -127,7 +126,11 @@
    public static KmlMissionConfig buildKmlMissionConfig(KmlParams kmlParams) {
        KmlMissionConfig kmlMissionConfig = new KmlMissionConfig();
        if (kmlParams.getFlyToWaylineMode() != null){
            kmlMissionConfig.setFlyToWayLineMode(kmlParams.getFlyToWaylineMode());
        }else {
        kmlMissionConfig.setFlyToWayLineMode(FlyToWaylineModeEnums.SAFELY.getValue());
        }
        kmlMissionConfig.setFinishAction(kmlParams.getFinishAction());
        if (StringUtils.isNotBlank(kmlParams.getExitOnRcLostAction())) {
            kmlMissionConfig.setExitOnRCLost(ExitOnRCLostEnums.EXECUTE_LOST_ACTION.getValue());
@@ -136,7 +139,11 @@
            kmlMissionConfig.setExitOnRCLost(ExitOnRCLostEnums.GO_CONTINUE.getValue());
        }
        kmlMissionConfig.setTakeOffSecurityHeight("20");
        if (kmlParams.getGlobalTransitionalSpeed() != null){
            kmlMissionConfig.setGlobalTransitionalSpeed(String.valueOf(kmlParams.getGlobalTransitionalSpeed()));
        }else {
        kmlMissionConfig.setGlobalTransitionalSpeed("15");
        }
        kmlMissionConfig.setGlobalRTHHeight("100");
        kmlMissionConfig.setTakeOffRefPoint(kmlParams.getTakeOffRefPoint());
        kmlMissionConfig.setDroneInfo(buildKmlDroneInfo(kmlParams.getDroneType(), kmlParams.getSubDroneType()));
@@ -160,9 +167,7 @@
        kmlPayloadInfo.setPayloadEnumValue(String.valueOf(payloadType));
        kmlPayloadInfo.setPayloadPositionIndex(String.valueOf(payloadPosition));
        return kmlPayloadInfo;
    }
    public static KmlFolder buildKmlFolder(String fileType, KmlParams kmlParams) {
        KmlFolder kmlFolder = new KmlFolder();
@@ -232,7 +237,6 @@
        return kmlFolder;
    }
    public static KmlWayLineCoordinateSysParam buildKmlWayLineCoordinateSysParam(String templateType) {
        KmlWayLineCoordinateSysParam kmlWayLineCoordinateSysParam = new KmlWayLineCoordinateSysParam();
        kmlWayLineCoordinateSysParam.setCoordinateMode("WGS84");
@@ -262,7 +266,6 @@
        // 0: 不上色 1: 真彩上色
        kmlPayloadParam.setModelColoringEnable("1");
        kmlPayloadParam.setImageFormat(kmlParams.getImageFormat());
        return kmlPayloadParam;
    }
@@ -277,7 +280,6 @@
        }
        kmlGlobalWaypointHeadingParam.setWaypointHeadingPathMode(WaypointHeadingPathModeEnums.FOLLOW_BAD_ARC.getValue());
        return kmlGlobalWaypointHeadingParam;
    }
    public static KmlPlacemark buildKmlPlacemark(RoutePointInfo routePointInfo, KmlParams kmlParams, String fileType) {
@@ -285,7 +287,6 @@
        kmlPlacemark.setIsRisky("0");
        kmlPlacemark.setKmlPoint(buildKmlPoint(String.valueOf(routePointInfo.getLongitude()), String.valueOf(routePointInfo.getLatitude())));
        kmlPlacemark.setIndex(String.valueOf(routePointInfo.getRoutePointIndex()));
        handleHeight(routePointInfo, kmlParams, fileType, kmlPlacemark);
        handleSpeed(routePointInfo, kmlParams, fileType, kmlPlacemark);
        handleWaypointHeadingParam(routePointInfo, kmlParams, fileType, kmlPlacemark);
@@ -343,7 +344,6 @@
    private static KmlPolygon buildKmlPolygon(List<CoordinatePointReq> coordinatePointReqList) {
        KmlPolygon kmlPolygon = new KmlPolygon();
        KmlLinearRing kmlLinearRing = new KmlLinearRing();
        String coordinates = coordinatePointReqList.stream().map(point -> point.getLongitude() + "," + point.getLatitude() + "," + point.getHeight())
                .collect(Collectors.joining(", "));
        kmlLinearRing.setCoordinates(StringUtils.join(coordinates, " "));
@@ -392,9 +392,7 @@
                kmlPlacemark.setWaypointHeadingParam(buildKmlWaypointHeadingParam(globalWaypointHeading.getWaypointHeadingMode(), globalWaypointHeading.getWaypointHeadingAngle(), globalWaypointHeading.getWaypointPoiPoint()));
            }
        }
    }
    private static void handleSpeed(RoutePointInfo routePointInfo, KmlParams kmlParams, String fileType, KmlPlacemark kmlPlacemark) {
        if (ObjectUtil.isNotEmpty(routePointInfo.getSpeed())) {
@@ -471,7 +469,6 @@
        kmlActionGroup.setActionGroupEndIndex(String.valueOf(ObjectUtil.isNotNull(routePointInfo.getEndIntervalRouteIndex()) ?
                routePointInfo.getEndIntervalRouteIndex() : routePointInfo.getRoutePointIndex()));
        kmlActionGroup.setActionGroupMode(ActionGroupModeEnums.SEQUENCE.getValue());
        String actionTriggerType = ActionTriggerTypeEnums.REACH_POINT.getValue();
        Double actionTriggerParam = 0.0;
        if (ObjectUtil.isNotNull(routePointInfo.getTimeInterval())) {
@@ -481,7 +478,6 @@
            actionTriggerType = ActionTriggerTypeEnums.MULTIPLE_DISTANCE.getValue();
            actionTriggerParam = routePointInfo.getDistanceInterval();
        }
        kmlActionGroup.setActionTrigger(buildKmlActionTrigger(actionTriggerType, actionTriggerParam));
        List<KmlAction> kmlActionList = new ArrayList<>();
        for (PointActionReq pointActionReq : routePointInfo.getActions()) {
@@ -502,7 +498,6 @@
            } else if (ObjectUtil.isNotNull(pointActionReq.getStopRecord()) && pointActionReq.getStopRecord()) {
                kmlActionList.add(buildKmlAction(String.valueOf(pointActionReq.getActionIndex()), ActionActuatorFuncEnums.STOP_RECORD.getValue(), pointActionReq, kmlParams));
            }
        }
        kmlActionGroup.setAction(kmlActionList);
        return kmlActionGroup;