|  |  | 
 |  |  |     @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();
 | 
 |  |  | 
 |  |  |         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);
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |     @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);
 | 
 |  |  | 
 |  |  |         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 +
 | 
 |  |  | 
 |  |  |         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");
 | 
 |  |  | 
 |  |  |         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);
 |