kaiyu
2020-12-21 78380a1efa78bd88f5d1be502971eae6fef07cd0
src/main/java/com/moral/controller/ScreenController.java
@@ -1633,6 +1633,50 @@
        }
    }
    @GetMapping("/carTrajectoryNew")
    @ApiOperation(value = "显示走航车轨迹", notes = "显示走航车轨迹")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "mac", value = "设备mac(格式:p5dnd7a0392081)", required = true, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "startTime", value = "开始时间(格式:2020-03-19-14)", required = true, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "endTime", value = "结束时间(格式:2020-03-19-17)", required = true, paramType = "query", dataType = "String")
    })
    public ModelAndView carTrajectoryNew(ModelAndView model, HttpServletRequest request) throws Exception {
        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
        String st = parameters.get("startTime").toString();
        String startYearAndDay = st.substring(0, st.lastIndexOf("-"));
        String startHour = st.substring(st.lastIndexOf("-") + 1);
        String startTime = startYearAndDay + " " + startHour + ":00:00";
        String et = parameters.get("endTime").toString();
        String endYearAndDay = et.substring(0, st.lastIndexOf("-"));
        String endHour = et.substring(et.lastIndexOf("-") + 1);
        String endTime = endYearAndDay + " " + endHour + ":00:00";
        parameters.put("startTime", startTime);
        parameters.put("endTime", endTime);
        String mac = parameters.get("mac").toString();
        if (mac != null && mac.length() != 0) {
            List<List<Map<String, Object>>> sensorData = historyService.getCarSensorData(parameters);
            Map<String, String> sensorsMap = sensorService.getSensorsMap(parameters);
            List<Map<String, Object>> sensorList = new ArrayList<>();
            if (sensorData.size() == 3) {
                sensorList = sensorData.get(0);
            }
            JSONObject params = new JSONObject();
            params.put("sensorInfo", sensorList);
            params.put("sensorsMap", sensorsMap);
            String paramsJson = params.toJSONString();
            model.addObject("carTrajectoryParams", paramsJson);
            model.setViewName("cartrajectoryNew");
            return model;
        } else {
            StringBuilder msg = new StringBuilder();
            msg.append(" param[0] mac:");
            msg.append(mac);
            log.warn(msg);
            model.setViewName("403");
            return model;
        }
    }
    @GetMapping("/trajectoryDataShow")
    @ApiOperation(value = "轨迹及数据", notes = "轨迹及数据")
    @ApiImplicitParams(value = {
@@ -3050,7 +3094,6 @@
        List<Map<String, Object>> fiveMinuteDataList = historyFiveMinutelyService.getFiveMinutesDataByMacsAndTimeSolt(pa);
        //声明数组,存放所有设备的数值
        double[] allDeviceData = new double[fiveMinuteDataList.size()];
        System.out.println(fiveMinuteDataList);
        int i = 0;
        //计算风向
        List<Map<String,Object>> windList = new ArrayList<>();
@@ -3070,9 +3113,7 @@
            i = i+1;
        }
        //计算平均风向和风速
        System.out.println("windList:"+windList);
        Map<String,Double> res = WindUtils.getWind_direction_speed(windList);
        System.out.println("res:"+res);
        //计算该站点的点与污染源点的角度
        Map<String,Double> angleMap = new HashMap();
        MyLatLng pollutionSourcePoint_log_lat = new MyLatLng(pollutionSourcePoint.getLongitude(),pollutionSourcePoint.getLatitude());
@@ -3126,24 +3167,14 @@
        double deviceDataAvg = sum/allDeviceData.length;
        //计算污染源点与设备点之间的距离
        double distance = mapUtils.getDistance(pollutionSourcePoint.getLongitude(),pollutionSourcePoint.getLatitude(),referenceDevice.getLongitude(),referenceDevice.getLatitude());
        System.out.println("distance:"+distance);
        //已知距离,角度,求x,y
        System.out.println(minDisparity.get().getValue());
        double x = Math.cos(Math.toRadians(minDisparity.get().getValue()))*distance;
        System.out.println("三角函数:"+Math.cos(minDisparity.get().getValue()));
        System.out.println(x);
        double y = Math.sin(Math.toRadians(minDisparity.get().getValue()))*distance;
        //获取设备的数值
        String[] fiveMinuteData = fiveMinuteDataMap.get(sensorKey).toString().split(",");
        double c = Double.parseDouble(fiveMinuteData[0].substring(1,fiveMinuteData[0].length()))-deviceDataAvg;
        System.out.println(c);
        //计算源强
        double pollutionSourceIntensity = EmissionDataUtil.getPollutionSourceIntensity(c,x,y,res.get("wind_speed"));
        System.out.println("c:"+c);
        System.out.println("x:"+x);
        System.out.println("y:"+y);
        System.out.println("风速:"+res.get("wind_speed"));
        System.out.println(pollutionSourceIntensity);
        //存放地图中心点
        Map<String,Object> center = new HashMap<>();
@@ -3187,7 +3218,6 @@
        numericalValueMap7.put("lat",31.450588);
        numericalValueMap7.put("count",0.10);
        numericalValueList.add(numericalValueMap7);
        System.out.println(numericalValueList.toString());
        JSONObject params = new JSONObject();