jinpengyong
2022-09-08 20d35519d143a21878201c1ec8b1cb5ee00a10f7
无人机处理bug
2 files modified
22 ■■■■■ changed files
screen-api/src/main/java/com/moral/api/controller/UAVController.java 3 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java 19 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/UAVController.java
@@ -51,6 +51,9 @@
    @RequestMapping("queryDataByBatch")
    public ResultMessage queryDataByBatch(String batch){
        List<HistorySecondUav> historySecondUavs = historySecondUavService.queryDataByBatch(batch);
        if (historySecondUavs==null){
            return new ResultMessage(ResponseCodeEnum.SENSOR_IS_NOT_EXIST,"null");
        }
        //转换前端所需参数
        HistorySecondUavVOs vo = HistorySecondUavVOs.convert(historySecondUavs);
        return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),vo);
screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
@@ -184,6 +184,10 @@
        for (HistorySecondUav data : datas) {
            String value = data.getValue();
            Map<String, Object> valueMap = JSON.parseObject(value, Map.class);
            //判断value里面有没有高度
            if (!valueMap.containsKey("flyhig")|| !valueMap.containsKey("flylat")|| !valueMap.containsKey("flylon")){
                continue;
            }
            //获取高度
            Double height = Double.valueOf((String) valueMap.get("flyhig"));
            if (height < lowestHeight)
@@ -194,6 +198,10 @@
        for (HistorySecondUav data : datas) {
            String value = data.getValue();
            Map<String, Object> valueMap = JSON.parseObject(value, Map.class);
            //判断value里面有没有高度
            if (!valueMap.containsKey("flyhig")|| !valueMap.containsKey("flylat")|| !valueMap.containsKey("flylon")){
                continue;
            }
            //获取高度
            Double height = Double.valueOf((String) valueMap.get("flyhig"));
            //加上最低点绝对值
@@ -205,6 +213,9 @@
        }
        //筛选无人机数据,保持每个点之间的距离在2米以上
        datas = filterDatas(datas);
        if (datas.size()<2){
            return null;
        }
        //转换单位
        unitConvert(datas);
        return datas;
@@ -226,6 +237,9 @@
        datas.remove(0);
        for (HistorySecondUav data : datas) {
            Double distance = getDistance(tempData, data);
            if (distance==null){
                continue;
            }
            if (distance > filterDistance) {
                result.add(data);
                tempData = data;
@@ -246,6 +260,11 @@
        String value2 = uav2.getValue();
        Map<String, Object> value1Map = JSON.parseObject(value1, Map.class);
        Map<String, Object> value2Map = JSON.parseObject(value2, Map.class);
        //判断这两个数据里面有没有经纬度
        if (!value1Map.containsKey("flylon")||!value1Map.containsKey("flylat")||!value1Map.containsKey("flyhig")||
                !value2Map.containsKey("flylon")||!value2Map.containsKey("flylat")||!value2Map.containsKey("flyhig")){
            return null;
        }
        //获取数据1的经纬度和高度
        Double longtitude1 = Double.valueOf((String) value1Map.get("flylon"));
        Double latitude1 = Double.valueOf((String) value1Map.get("flylat"));