From 63bf75616f1bcba51d23932cdcdbe3c3fe5643d8 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Fri, 28 Jul 2023 09:21:42 +0800 Subject: [PATCH] chore:测试提交 --- screen-api/src/main/java/com/moral/api/controller/UAVController.java | 72 ++++++++++++++++++++++++++++++----- 1 files changed, 61 insertions(+), 11 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/UAVController.java b/screen-api/src/main/java/com/moral/api/controller/UAVController.java index b97df8d..e501a09 100644 --- a/screen-api/src/main/java/com/moral/api/controller/UAVController.java +++ b/screen-api/src/main/java/com/moral/api/controller/UAVController.java @@ -86,15 +86,11 @@ ArrayList<Double> flyLatList = new ArrayList<>(); //������ ArrayList<Double> flyLonList = new ArrayList<>(); -// HashMap<String, Object> map = new HashMap<>(); -// String mac ="p5dnd7a0243592"; -// String time1 ="2023-05-14 10:40:00"; -// String time2 ="2023-05-14 11:10:00"; -// map.put("mac",mac); -// map.put("time1",time1); -// map.put("time2",time2); -// map.put("height",0.5); -// List<UAVResultDTO> uavResultDTOS = historySecondUavMapper.reList(map); +// String mac ="p5dnd7a0243591"; +// String time1 ="2023-07-19 14:14:08"; +// String time2 ="2023-07-19 14:35:29"; +// +//// List<UAVResultDTO> uavResultDTOS = historySecondUavMapper.reList(map); // QueryWrapper<HistorySecondUav> queryWrapper = new QueryWrapper<>(); // queryWrapper.select("value"); // queryWrapper.eq("mac",mac); @@ -166,15 +162,31 @@ } } } + ArrayList<Integer> list2 = new ArrayList<>(); ArrayList<UAVResultDTO> uavResultDTOS1 = new ArrayList<>(); for (UAVGteForDTO uavGteForDTO : list) { + ArrayList<String> list1 = new ArrayList<>(); ArrayList<String[]> doubleArrayList = new ArrayList<>(); doubleArrayList.add(uavGteForDTO.getLeftTop()); doubleArrayList.add(uavGteForDTO.getLeftBottom()); doubleArrayList.add(uavGteForDTO.getRightTop()); doubleArrayList.add(uavGteForDTO.getRightBottom()); -// UAVResultDTO result = getResult(doubleArrayList); -// uavResultDTOS1.add(result); + UAVResultDTO result = getResults(doubleArrayList); + for (int i = 0; i < historySecondUavs.size(); i++) { + HistorySecondUav historySecondUav = historySecondUavs.get(i); + String value = historySecondUav.getValue(); + Map map1 = JSON.parseObject(value, Map.class); + String flylat = map1.get("flylat").toString(); + String flylon = map1.get("flylon").toString(); + //��������������������������� + boolean flag = isInPolygon(flylon,flylat,doubleArrayList); + if (flag){ + list2.add(list2.size()+1); + list1.add(historySecondUav.getValue()); + historySecondUavs.remove(i); + } + } + uavResultDTOS1.add(result); } if (!ObjectUtils.isEmpty(uavResultDTOS1)){ return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),uavResultDTOS1); @@ -405,8 +417,12 @@ ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //������������������ List<UAVQueryTimeSlotDTO> dtos = historySecondUavService.queryTimeSlot(form); + if (ObjectUtils.isEmpty(dtos)){ + return new ResultMessage(ResponseCodeEnum.TARGET_IS_NULL,null); + } //������vo��� UAVQueryTimeSlotVOs vo = UAVQueryTimeSlotVOs.convert(dtos); + //������������ return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),vo); } @@ -504,6 +520,40 @@ // return uavResultDTO; } + + //��������������� + public static UAVResultDTO getResults(ArrayList<String[]> doubleArrayList){ + UAVResultDTO uavResultDTO = new UAVResultDTO(); + int total = doubleArrayList.size(); + double X = 0, Y = 0, Z = 0; + for (int i = 0; i < total; i++) { + double lat, lon, x, y, z; + String[] strings = doubleArrayList.get(i); + lon = Double.parseDouble(strings[0]) * Math.PI / 180; + lat = Double.parseDouble(strings[1]) * Math.PI / 180; + x = Math.cos(lat) * Math.cos(lon); + y = Math.cos(lat) * Math.sin(lon); + z = Math.sin(lat); + X += x; + Y += y; + Z += z; + } + X = X / total; + Y = Y / total; + Z = Z / total; + double Lon = Math.atan2(Y, X); + double Hyp = Math.sqrt(X * X + Y * Y); + double Lat = Math.atan2(Z, Hyp); + + double rsLon = Lon * 180 / Math.PI; + double rsLat = Lat * 180 / Math.PI; + uavResultDTO.setFlyLon(rsLon); + uavResultDTO.setFlyLat(rsLat); + +// return rsLon+"_"+rsLat; + return uavResultDTO; + } + /** * ������������������������������GeneralPath������ * -- Gitblit v1.8.0