From eaea7058b5c7ea800cf9d4d0a4291471e6bb338b Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Fri, 28 Jul 2023 13:38:31 +0800
Subject: [PATCH] fix:矩形调整
---
screen-api/src/main/java/com/moral/api/controller/UAVController.java | 102 ++++++++++++++------------------------------------
1 files changed, 29 insertions(+), 73 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 e501a09..9d28eec 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,33 +86,15 @@
ArrayList<Double> flyLatList = new ArrayList<>();
//������
ArrayList<Double> flyLonList = new ArrayList<>();
-// 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);
-// queryWrapper.between("time",time1,time2);
-// List<HistorySecondUav> historySecondUavs = historySecondUavMapper.selectList(queryWrapper);
+
List<HistorySecondUav> historySecondUavs = historySecondUavMapper.reList(params);
if (ObjectUtils.isEmpty(historySecondUavs)){
return new ResultMessage(ResponseCodeEnum.TARGET_IS_NULL,"null");
- }
-
- for (HistorySecondUav historySecondUav : historySecondUavs) {
- String value = historySecondUav.getValue();
- Map map1 = JSON.parseObject(value, Map.class);
- flyLatList.add(Double.parseDouble(map1.get("flylat").toString()));
- flyLonList.add(Double.parseDouble(map1.get("flylon").toString()));
-
}
Double maxLat = Collections.max(flyLatList);
Double maxLon = Collections.max(flyLonList);
Double minLat = Collections.min(flyLatList);
Double minLon = Collections.min(flyLonList);
-
//������������������
String leftTop = minLat +";"+ maxLon;
//������
@@ -162,39 +144,8 @@
}
}
}
- 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 = 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);
-
- }
-
-
HashMap<String,List<String>> rsMap = new HashMap<>();
+ List<String> stringList = new ArrayList<>();
for (UAVGteForDTO uavGteForDTO : list) {
ArrayList<String> list1 = new ArrayList<>();
ArrayList<String[]> doubleArrayList = new ArrayList<>();
@@ -202,6 +153,12 @@
doubleArrayList.add(uavGteForDTO.getLeftBottom());
doubleArrayList.add(uavGteForDTO.getRightTop());
doubleArrayList.add(uavGteForDTO.getRightBottom());
+ String[] leftTops = uavGteForDTO.getLeftTop();
+ String[] rightBottoms = uavGteForDTO.getRightBottom();
+ Double x1 = Double.parseDouble(leftTops[0]);
+ Double x2 = Double.parseDouble(rightBottoms[0]);
+ Double y1 = Double.parseDouble(leftTops[1]);
+ Double y2 = Double.parseDouble(rightBottoms[1]);
//������������������
for (int i = 0; i < historySecondUavs.size(); i++) {
HistorySecondUav historySecondUav = historySecondUavs.get(i);
@@ -210,32 +167,20 @@
String flylat = map1.get("flylat").toString();
String flylon = map1.get("flylon").toString();
//���������������������������
- boolean flag = isInPolygon(flylon,flylat,doubleArrayList);
+ boolean flag = isInPolygon(flylon,flylat,x1,x2,y1,y2);
if (flag){
- list1.add(historySecondUav.getValue());
- historySecondUavs.remove(i);
+ String time = DateUtils.dateToDateString(historySecondUav.getTime());
+ //historySecondUavs.remove(i);
+ if(!stringList.contains(time)){
+ list1.add(historySecondUav.getValue());
+ stringList.add(time);
+ }
}
}
//���������������������
String result = getResult(doubleArrayList);
rsMap.put(result,list1);
- }
-// for (HistorySecondUav historySecondUav : historySecondUavs) {
-// 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){
-// historySecondUavs.remove(historySecondUav);
-// list1.add(historySecondUav.getValue());
-// }
-// }
-// //���������������������
-// String result = getResult(doubleArrayList);
-// rsMap.put(result,list1);
-// }
+ }
//���������������������������������������
ArrayList<UAVResultDTO> uavResultDTOS = new ArrayList<>();
@@ -661,9 +606,7 @@
double p_x =Double.parseDouble(X);
double p_y =Double.parseDouble(Y);
Point2D.Double point = new Point2D.Double(p_x, p_y);
-
List<Point2D.Double> pointList= new ArrayList<Point2D.Double>();
-
for (String[] strings : doubleArrayList) {
double polygonPoint_x=Double.parseDouble(strings[0]);
double polygonPoint_y=Double.parseDouble(strings[1]);
@@ -674,4 +617,17 @@
}
+ public boolean isInPolygon(String X,String Y,double x1,double x2,double y1,double y2){
+ boolean result = false;
+ double x =Double.parseDouble(X);
+ double y =Double.parseDouble(Y);
+ if(x >= Math.min(x1, x2) && x <= Math.max(x1, x2) ){
+ if(y >= Math.min(y1, y2) && y <= Math.max(y1, y2)){
+ result = true;
+ }
+ }
+ return result;
+
+ }
+
}
--
Gitblit v1.8.0