| | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.moral.api.entity.HistorySecondUav; |
| | | import com.moral.api.mapper.HistorySecondUavMapper; |
| | | import com.moral.api.pojo.dto.uav.UAVGteForDTO; |
| | |
| | | //左下2 |
| | | String[] zuoxia = calLocationByDistanceAndLocationAndDirection(180, minLon, maxLat, 50); |
| | | |
| | | for (int i = 0; i <distance1 ; i+=60) { |
| | | for (int i = 0; i <distance2 ; i+=50) { |
| | | UAVGteForDTO dto1 = new UAVGteForDTO(); |
| | | String[] strings2 = calLocationByDistanceAndLocationAndDirection(90, minLon, maxLat, i); |
| | | String[] strings3 = calLocationByDistanceAndLocationAndDirection(90, Double.parseDouble(youshang[0].toString()), Double.parseDouble(youshang[1].toString()), i); |
| | |
| | | dto1.setRightBottom(strings4); |
| | | dto1.setLeftBottom(strings5); |
| | | list.add(dto1); |
| | | for (int j = 0; j < distance2; j+=60) { |
| | | for (int j = 0; j < distance1; j+=50) { |
| | | UAVGteForDTO dto2 = new UAVGteForDTO(); |
| | | String[] strings6 = calLocationByDistanceAndLocationAndDirection(180, Double.parseDouble(strings2[0].toString()), Double.parseDouble(strings2[1].toString()), j); |
| | | String[] strings7 = calLocationByDistanceAndLocationAndDirection(180, Double.parseDouble(strings3[0].toString()), Double.parseDouble(strings3[1].toString()), j); |
| | |
| | | doubleArrayList.add(uavGteForDTO.getLeftBottom()); |
| | | doubleArrayList.add(uavGteForDTO.getRightTop()); |
| | | doubleArrayList.add(uavGteForDTO.getRightBottom()); |
| | | UAVResultDTO result = getResult(doubleArrayList); |
| | | uavResultDTOS1.add(result); |
| | | // UAVResultDTO result = getResult(doubleArrayList); |
| | | // uavResultDTOS1.add(result); |
| | | } |
| | | if (uavResultDTOS1!=null){ |
| | | if (!ObjectUtils.isEmpty(uavResultDTOS1)){ |
| | | return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),uavResultDTOS1); |
| | | |
| | | } |
| | |
| | | } |
| | | } |
| | | // lists.add(list1); |
| | | // String result = getResult(doubleArrayList); |
| | | // rsMap.put(result,list1); |
| | | String result = getResult(doubleArrayList); |
| | | rsMap.put(result,list1); |
| | | } |
| | | |
| | | |
| | |
| | | for (String string : strings) { |
| | | UAVResultDTO dto = new UAVResultDTO(); |
| | | List<String> list1 = rsMap.get(string); |
| | | if (ObjectUtils.isEmpty(list1)){ |
| | | continue; |
| | | } |
| | | ArrayList<Double> TVOCArrayList = new ArrayList<>(); |
| | | ArrayList<Double> PM10ArrayList = new ArrayList<>(); |
| | | ArrayList<Double> PM25ArrayList = new ArrayList<>(); |
| | |
| | | ArrayList<Double> COArrayList = new ArrayList<>(); |
| | | ArrayList<Double> WDArrayList = new ArrayList<>(); |
| | | ArrayList<Double> SHArrayList = new ArrayList<>(); |
| | | ArrayList<Double> O3ArrayList = new ArrayList<>(); |
| | | for (String s : list1) { |
| | | JSONObject jsonObject = JSON.parseObject(s); |
| | | //tvoc |
| | |
| | | ///二氧化氮 |
| | | String a21004 = jsonObject.get("a21004").toString(); |
| | | // //气压 |
| | | // String a01006 = jsonObject.get("a01006").toString(); |
| | | // if (a01006!=null){ |
| | | // QYArrayList.add(Double.parseDouble(a01006)); |
| | | // } |
| | | Object a01006 = jsonObject.get("a01006"); |
| | | if (!Objects.isNull(a01006)){ |
| | | QYArrayList.add(Double.parseDouble(a01006.toString())); |
| | | } |
| | | //pm10 |
| | | String a34002 = jsonObject.get("a34002").toString(); |
| | | //co |
| | | String a21005 = jsonObject.get("a21005").toString(); |
| | | //湿度 |
| | | // String a01002 = jsonObject.get("a01002").toString(); |
| | | Object a01002 = jsonObject.get("a01002"); |
| | | if (!Objects.isNull(a01002)){ |
| | | QYArrayList.add(Double.parseDouble(a01002.toString())); |
| | | } |
| | | //温度 |
| | | // String a01001 = jsonObject.get("a01001").toString(); |
| | | Object a01001 = jsonObject.get("a01001"); |
| | | if (!Objects.isNull(a01001)){ |
| | | QYArrayList.add(Double.parseDouble(a01001.toString())); |
| | | } |
| | | String a05024 = jsonObject.get("a05024").toString(); |
| | | TVOCArrayList.add(Double.parseDouble(a99054)); |
| | | PM10ArrayList.add(Double.parseDouble(a34002)); |
| | | PM25ArrayList.add(Double.parseDouble(a34004)); |
| | | SOArrayList.add(Double.parseDouble(a21026)); |
| | | NOArrayList.add(Double.parseDouble(a21004)); |
| | | COArrayList.add(Double.parseDouble(a21005)); |
| | | O3ArrayList.add(Double.parseDouble(a05024)); |
| | | |
| | | // WDArrayList.add(Double.parseDouble(a01001)); |
| | | // SHArrayList.add(Double.parseDouble(a01002)); |
| | | } |
| | | double WDDouble =0.0; |
| | | double SHDouble =0.0; |
| | | double QYDouble =0.0; |
| | | double CODouble =0.0; |
| | | double TVODouble =0.0; |
| | | double PM10Double =0.0; |
| | | double PM25Double =0.0; |
| | | double SODouble =0.0; |
| | | double NODouble =0.0; |
| | | double O3Double =0.0; |
| | | if (COArrayList.size()>0){ |
| | | CODouble = COArrayList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | } |
| | | if (TVOCArrayList.size()>0){ |
| | | TVODouble = TVOCArrayList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | } |
| | | if (PM10ArrayList.size()>0){ |
| | | PM10Double = PM10ArrayList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | } |
| | | if (PM25ArrayList.size()>0){ |
| | | PM25Double = PM25ArrayList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | } |
| | | if (SOArrayList.size()>0){ |
| | | SODouble = SOArrayList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | } |
| | | if (NOArrayList.size()>0){ |
| | | NODouble = NOArrayList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | } |
| | | if (WDArrayList.size()>0){ |
| | | WDDouble = WDArrayList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | } |
| | | if (SHArrayList.size()>0){ |
| | | SHDouble = SHArrayList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | } |
| | | if (QYArrayList.size()>0){ |
| | | QYDouble = QYArrayList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | } |
| | | if (O3ArrayList.size()>0){ |
| | | O3Double = O3ArrayList.stream().mapToDouble(Double::doubleValue).average().getAsDouble(); |
| | | } |
| | | |
| | | double asDouble = COArrayList.stream().mapToInt(Double::intValue).average().getAsDouble(); |
| | | |
| | | dto.setCoAvg(CODouble); |
| | | dto.setNO2Avg(NODouble); |
| | | dto.setO3Avg(O3Double); |
| | | dto.setTVOCAvg(TVODouble); |
| | | dto.setPM10Avg(PM10Double); |
| | | dto.setPM25Avg(PM25Double); |
| | | dto.setSO2Avg(SODouble); |
| | | dto.setWDAvg(WDDouble); |
| | | dto.setSHAvg(SHDouble); |
| | | dto.setQYAvg(QYDouble); |
| | | String[] s = string.split("_"); |
| | | dto.setFlyLat(Double.parseDouble(s[1])); |
| | | dto.setFlyLon(Double.parseDouble(s[0])); |
| | | uavResultDTOS.add(dto); |
| | | } |
| | | |
| | | |
| | | return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),null); |
| | | return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),uavResultDTOS); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | public static UAVResultDTO getResult(ArrayList<String[]> doubleArrayList){ |
| | | UAVResultDTO uavResultDTO = new UAVResultDTO(); |
| | | public static String getResult(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 rsLon = Lon * 180 / Math.PI; |
| | | double rsLat = Lat * 180 / Math.PI; |
| | | uavResultDTO.setFlyLon(rsLon); |
| | | uavResultDTO.setFlyLat(rsLat); |
| | | // uavResultDTO.setFlyLon(rsLon); |
| | | // uavResultDTO.setFlyLat(rsLat); |
| | | |
| | | // return rsLon+"_"+rsLat; |
| | | return uavResultDTO; |
| | | return rsLon+"_"+rsLat; |
| | | // return uavResultDTO; |
| | | } |
| | | |
| | | /** |