From 53217a560fecddcf8ff5b7583532f49381b14d80 Mon Sep 17 00:00:00 2001 From: 于紫祥_1901 <email@yuzixiang_1910> Date: Mon, 24 Aug 2020 08:38:30 +0800 Subject: [PATCH] 风场图update --- src/main/java/com/moral/service/impl/DeviceServiceImpl.java | 126 ++++++++++++++++++++++++++--------------- 1 files changed, 79 insertions(+), 47 deletions(-) diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java index 52bda83..139edf0 100644 --- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java @@ -720,12 +720,10 @@ @Override public List byMonitorIdGetDeviceAndWind(String id,String time,String tab) { List<DeviceAndWind> deviceAndWinds=deviceMapper.byMonitorIdGetDeviceAndWind(Integer.parseInt(id),time,tab); - System.out.println(time); List loList=new ArrayList(); List laList=new ArrayList(); Double U=0.0; Double V=0.0; - log.info(deviceAndWinds.size()); List list=new ArrayList(); for (DeviceAndWind andWind : deviceAndWinds) { Double lo=andWind.getLongitude(); @@ -869,7 +867,6 @@ List transList= LatLngTransformation.Convert_BD09_To_GCJ02(monitorLa,monitorLo); Double transLo=(Double) transList.get(0); Double transLa=(Double) transList.get(1); - list.add(jsonArray); list.add(transLo); list.add(transLa); @@ -879,25 +876,63 @@ @Override public List byMonitorIdGetDeviceAndWindSpecial(String id, String time, String tab) { - List<DeviceAndWind> deviceAndWinds=deviceMapper.byMonitorIdGetDeviceAndWind(Integer.parseInt(id),time,tab); + + MonitorPoint monitorPoint=monitorPointMapper.byIdGetMonitorPoint(Integer.parseInt(id)); + Integer areaCode=monitorPoint.getAreaCode(); + String townCode= monitorPoint.getTownCode()+""; + Map<String, Object> parm=new HashMap<>(); + List<DeviceAndWind> deviceAndWinds=new ArrayList<>(); + Double loma= 0.0; + Double lomi= 0.0; + Double lama= 0.0; + Double lami= 0.0; + + int length=1; + int perdlen=1; + if (areaCode==320581){ + parm.put("areaCode",areaCode); + List<Device> deviceList=deviceMapper.getDeviceByCode(parm); + for (Device d : deviceList) { + String mac=d.getMac(); + DeviceAndWind deviceAndWind = deviceMapper.byMacGetDeviceAndWind(mac,time,tab); + if (deviceAndWind!=null){ + deviceAndWinds.add(deviceAndWind); + } + } + length=8000; + perdlen=2200; + }else if ((areaCode == 320583) && (townCode.equals("320583108000"))){ + parm.put("townCode",townCode); + List<Device> deviceList=deviceMapper.getDeviceByCode(parm); + for (Device d : deviceList) { + String mac=d.getMac(); + DeviceAndWind deviceAndWind = deviceMapper.byMacGetDeviceAndWind(mac,time,tab); + if (deviceAndWind!=null){ + deviceAndWinds.add(deviceAndWind); + } + } + length=2000; + perdlen=280; + }else { + deviceAndWinds=deviceMapper.byMonitorIdGetDeviceAndWind(Integer.parseInt(id),time,tab); + length=2000; + perdlen=80; + } List loList=new ArrayList(); List laList=new ArrayList(); Double U=0.0; Double V=0.0; List list=new ArrayList(); for (DeviceAndWind andWind : deviceAndWinds) { - Double lo=andWind.getLongitude(); - Double la=andWind.getLatitude(); - List tranlist= LatLngTransformation.Convert_BD09_To_GCJ02(la,lo); - Double transLo=(Double) tranlist.get(0); - Double transLa=(Double) tranlist.get(1); - loList.add(transLo); - laList.add(transLa); + Double lo=andWind.getLongitude(); + Double la=andWind.getLatitude(); + List tranlist= LatLngTransformation.Convert_BD09_To_GCJ02(la,lo); + Double transLo=(Double) tranlist.get(0); + Double transLa=(Double) tranlist.get(1); + loList.add(transLo); + laList.add(transLa); } - Double loma= 0.0; - Double lomi= 0.0; - Double lama= 0.0; - Double lami= 0.0; + if (loList.size()>0){ loma= (Double) Collections.max(loList); lomi= (Double) Collections.min(loList); @@ -912,17 +947,15 @@ laLaMap.put("maxLa",lama); laLaMap.put("minLa",lami); - Double lo1=lomi-2000*0.00001141; - Double lo2=loma+2000*0.00001141; - Double la2=lami-2000*0.00000899; - Double la1=lama+2000*0.00000899; + Double lo1=lomi-length*0.00001141; + Double lo2=loma+length*0.00001141; + Double la2=lami-length*0.00000899; + Double la1=lama+length*0.00000899; - Double dx=0.00001141*70; - Double dy=0.00000899*70; - + Double dx=0.00001141*perdlen; + Double dy=0.00000899*perdlen; int nx=(int) Math.floor((lo2-lo1)/dx); int ny=(int) Math.floor((la1-la2)/dy); - System.out.println(nx+"----"+ny); String header1 = "\"" + "header" + "\"" + ": " + "{" + "\"" + "parameterUnit" + "\"" + ": " + "\"" + "m/s" + "\"" + ", " + "\"" + "parameterNumber" + "\"" + ": " + 2 + ", " + "\"" + "dx" + "\"" + ": " + dx + ", " + "\"" + "dy" + "\"" + ": " + dy + ", " + "\"" + "parameterNumberName" + "\"" + ": " + "\"" + "eastward_wind" + "\"" + ", " + "\"" + "la1" + "\"" + ": " + la1 + ", " + "\"" + "la2" + "\"" + ": " + la2 + @@ -942,31 +975,30 @@ List<Map> mapList=new ArrayList<Map>(); for (int j = 0; j <deviceAndWinds.size() ; j++) { - Map<String,Double> map=new HashMap<String,Double> (); - Double windDir= deviceAndWinds.get(j).getWindDir(); + Map<String,Double> map=new HashMap<String,Double> (); + Double windDir= deviceAndWinds.get(j).getWindDir(); + Double windSpeed=deviceAndWinds.get(j).getWindSpeed(); + if (windDir==null){ + windDir=0.0; + windSpeed=0.0; + } + Double tvoc=deviceAndWinds.get(j).getTVoc(); - Double windSpeed=deviceAndWinds.get(j).getWindSpeed(); - if (windDir==null){ - windDir=0.0; - windSpeed=0.0; - } - Double tvoc=deviceAndWinds.get(j).getTVoc(); + List tranlist= LatLngTransformation.Convert_BD09_To_GCJ02(deviceAndWinds.get(j).getLatitude(),deviceAndWinds.get(j).getLongitude()); + Double transLo=(Double) tranlist.get(0); + Double transLa=(Double) tranlist.get(1); + if (tvoc==null){ + tvoc=0.0; + } + Double dir = (270.0 - windDir * Math.PI / 180.0); - List tranlist= LatLngTransformation.Convert_BD09_To_GCJ02(deviceAndWinds.get(j).getLatitude(),deviceAndWinds.get(j).getLongitude()); - Double transLo=(Double) tranlist.get(0); - Double transLa=(Double) tranlist.get(1); - if (tvoc==null){ - tvoc=0.0; - } - Double dir = (270.0 - windDir * Math.PI / 180.0); - - U = windSpeed * Math.cos(dir); - V = windSpeed * Math.sin(dir); - map.put("lo",transLo); - map.put("la",transLa); - map.put("U",U); - map.put("V",V); - mapList.add(map); + U = windSpeed * Math.cos(dir); + V = windSpeed * Math.sin(dir); + map.put("lo",transLo); + map.put("la",transLa); + map.put("U",U); + map.put("V",V); + mapList.add(map); } for (int i = 0; i <mapList.size() ; i++) { Double lo= (Double) mapList.get(i).get("lo"); @@ -1023,7 +1055,7 @@ String vData = "\"" + "data" + "\"" + ": " + vList; String s1 = "[" + "{" + header1 + ", " + uData + "}" + ", " + "{" + header2 + ", " + vData + "}" + "]"; JSONArray jsonArray = JSONArray.parseArray(s1); - MonitorPoint monitorPoint=monitorPointMapper.byIdGetMonitorPoint(Integer.parseInt(id)); + Double monitorLo=monitorPoint.getLongitude(); Double monitorLa=monitorPoint.getLatitude(); List transList= LatLngTransformation.Convert_BD09_To_GCJ02(monitorLa,monitorLo); -- Gitblit v1.8.0