From 9b9f6e309a0b0ffd5c2495eaf8438b36704991a6 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Mon, 28 Sep 2020 11:02:07 +0800
Subject: [PATCH] update
---
src/main/java/com/moral/service/impl/DeviceServiceImpl.java | 269 +++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 219 insertions(+), 50 deletions(-)
diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index 53e3cc1..f31a2d0 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -719,67 +719,38 @@
@Override
public List byMonitorIdGetDeviceAndWind(String id,String time,String tab) {
-
List<DeviceAndWind> deviceAndWinds=deviceMapper.byMonitorIdGetDeviceAndWind(Integer.parseInt(id),time,tab);
List loList=new ArrayList();
List laList=new ArrayList();
Double U=0.0;
Double V=0.0;
- log.info("id="+id);
- log.info("time="+time);
- log.info("tab="+tab);
- log.info("deviceAndWinds="+deviceAndWinds);
+ List list=new ArrayList();
for (DeviceAndWind andWind : deviceAndWinds) {
Double lo=andWind.getLongitude();
Double la=andWind.getLatitude();
- log.info("lo="+lo);
- List list= LatLngTransformation.Convert_BD09_To_GCJ02(la,lo);
- log.info("list2="+list);
- Double transLo=(Double) list.get(0);
- Double transLa=(Double) list.get(1);
+ 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);
}
- log.info(loList.size());
- log.info(loList);
- Double loma=0.0;
- Double lomi=0.0;
- Double lama=0.0;
- Double lami=0.0;
-
-
+ Double loma= 0.0;
+ Double lomi= 0.0;
+ Double lama= 0.0;
+ Double lami= 0.0;
if (loList.size()>0){
- loma= (Double) loList.get(0);
- lomi= (Double) loList.get(0);
+ loma= (Double) Collections.max(loList);
+ lomi= (Double) Collections.min(loList);
}
if (laList.size()>0){
- lama= (Double) laList.get(0);
- lami= (Double) laList.get(0);
+ lama= (Double) Collections.max(laList);
+ lami= (Double) Collections.min(laList);
}
- for (int i = 1; i <loList.size() ; i++) {
- if (loma<=(Double) loList.get(i)){
- loma=(Double) loList.get(i);
- }
- if (lomi>=(Double) loList.get(i)){
- lomi=(Double) loList.get(i);
- }
- }
-
- for (int i = 1; i <laList.size() ; i++) {
- if (lama<=(Double) laList.get(i)){
- lama=(Double) laList.get(i);
- }
- if (lami>=(Double) laList.get(i)){
- lami=(Double) laList.get(i);
- }
- }
-
Map laLaMap=new HashMap();
laLaMap.put("maxLo",loma);
laLaMap.put("minLo",lomi);
laLaMap.put("maxLa",lama);
- laLaMap.put("lami",lami);
- System.out.println(laLaMap);
+ laLaMap.put("minLa",lami);
Double lo1=lomi-250*0.00001141;
Double lo2=loma+250*0.00001141;
@@ -817,11 +788,11 @@
windDir=0.0;
windSpeed=0.0;
}
- Double tvoc=deviceAndWinds.get(j).gettVoc();
+ Double tvoc=deviceAndWinds.get(j).getTVoc();
- List list= LatLngTransformation.Convert_BD09_To_GCJ02(deviceAndWinds.get(j).getLatitude(),deviceAndWinds.get(j).getLongitude());
- Double transLo=(Double) list.get(0);
- Double transLa=(Double) list.get(1);
+ 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;
}
@@ -867,7 +838,7 @@
}
}
}else {
- if (y>=1 && j==y*nx+x && uList.get(j)==0.0 && vList.get(j)==0.0){
+ if (y>=1 && j==y*nx+x){
int k;
for (k = j-2*nx; k <=j+2*nx ;) {
uList.set(k-1,U);
@@ -896,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 list=new ArrayList();
list.add(jsonArray);
list.add(transLo);
list.add(transLa);
@@ -905,7 +875,206 @@
}
@Override
- public DeviceAndWind getDeviceAndWindByMac(String mac,String time,String table) {
- return deviceMapper.getDeviceAndWindByMac(mac,time,table);
+ public List byMonitorIdGetDeviceAndWindSpecial(String id, String time, String tab) {
+ MonitorPoint monitorPoint=monitorPointMapper.byIdGetMonitorPoint(Integer.parseInt(id));
+ Integer areaCode=monitorPoint.getAreaCode();
+ String townCode= monitorPoint.getTownCode()+"";
+ int monitorPointId=monitorPoint.getId();
+ 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 if(monitorPointId==35){
+ DeviceAndWind deviceAndWind=deviceMapper.getDeviceAndWindByMac("898607b0101730392253",time,tab);
+ DeviceAndWind deviceAndWind1=deviceMapper.getDeviceAndWindByMac("p5dnd7a0392083",time,tab);
+ deviceAndWinds.add(deviceAndWind);
+ deviceAndWinds.add(deviceAndWind1);
+ length=2000;
+ perdlen=50;
+
+ }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);
+ }
+
+ if (loList.size()>0){
+ loma= (Double) Collections.max(loList);
+ lomi= (Double) Collections.min(loList);
+ }
+ if (laList.size()>0){
+ lama= (Double) Collections.max(laList);
+ lami= (Double) Collections.min(laList);
+ }
+ Map laLaMap=new HashMap();
+ laLaMap.put("maxLo",loma);
+ laLaMap.put("minLo",lomi);
+ laLaMap.put("maxLa",lama);
+ laLaMap.put("minLa",lami);
+
+ 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*perdlen;
+ Double dy=0.00000899*perdlen;
+ int nx=(int) Math.floor((lo2-lo1)/dx);
+ int ny=(int) Math.floor((la1-la2)/dy);
+ String header1 = "\"" + "header" + "\"" + ": " + "{" + "\"" + "parameterUnit" + "\"" + ": " + "\"" + "m/s" + "\"" + ", " + "\"" + "parameterNumber" + "\"" + ": " + 2 +
+ ", " + "\"" + "dx" + "\"" + ": " + dx + ", " + "\"" + "dy" + "\"" + ": " + dy +
+ ", " + "\"" + "parameterNumberName" + "\"" + ": " + "\"" + "eastward_wind" + "\"" + ", " + "\"" + "la1" + "\"" + ": " + la1 + ", " + "\"" + "la2" + "\"" + ": " + la2 +
+ ", " + "\"" + "parameterCategory" + "\"" + ": " + 2 + ", " + "\"" + "lo1" + "\"" + ": " + lo1 + ", " + "\"" + "lo2" + "\"" + ": " + lo2 +
+ ", " + "\"" + "nx" + "\"" + ": " + nx + ", " + "\"" + "ny" + "\"" + ": " + ny + ", " + "\"" + "refTime" + "\"" + ": " + "\"" + "2020-07-22 23:00:00" + "\"" + "}";
+
+ String header2 = "\"" + "header" + "\"" + ": " + "{" + "\"" + "parameterUnit" + "\"" + ": " + "\"" + "m/s" + "\"" + ", " + "\"" + "parameterNumber" + "\"" + ": " + 3 +
+ ", " + "\"" + "dx" + "\"" + ": " + dx + ", " + "\"" + "dy" + "\"" + ": " + dy +
+ ", " + "\"" + "parameterNumberName" + "\"" + ": " + "\"" + "eastward_wind" + "\"" + ", " + "\"" + "la1" + "\"" + ": " + la1 + ", " + "\"" + "la2" + "\"" + ": " + la2 +
+ ", " + "\"" + "parameterCategory" + "\"" + ": " + 2 + ", " + "\"" + "lo1" + "\"" + ": " + lo1 + ", " + "\"" + "lo2" + "\"" + ": " + lo2 +
+ ", " + "\"" + "nx" + "\"" + ": " + nx + ", " + "\"" + "ny" + "\"" + ": " + ny + ", " + "\"" + "refTime" + "\"" + ": " + "\"" + "2020-07-22 23:00:00" + "\"" + "}";
+
+ List<Double> uList=new ArrayList<Double> ();
+ List<Double> vList=new ArrayList<Double> ();
+ int x=0;
+ int y=0;
+ 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();
+ 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);
+
+ 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");
+ Double la= (Double) mapList.get(i).get("la");
+ x= (int) Math.floor((lo-lo1)/dx);
+ y=Math.abs((int)Math.floor((la-la1)/dy));
+ //y=Math.floor(Math.abs(la-la1)/dy);
+ U=(Double) mapList.get(i).get("U");
+ V=(Double) mapList.get(i).get("V");
+ if (i==0){
+ for (int j = 0; j <nx*ny ; j++) {
+ uList.add(0.0);
+ vList.add(0.0);
+ }
+ }
+ for (int j = 0; j <nx*ny ; j++) {
+ if (i==0){
+ if ((y>=2 && j==(y)*nx+x)){
+ int k;
+ for (k = j-2*nx; k <=j+2*nx ;k=k+nx) {
+ uList.set(k,U);
+ uList.set(k-1,U);
+ uList.set(k-2,U);
+ uList.set(k+1,U);
+ uList.set(k+2,U);
+ vList.set(k,V);
+ vList.set(k-1,V);
+ vList.set(k-2,V);
+ vList.set(k+1,V);
+ vList.set(k+2,V);
+ }
+ }
+ }else {
+ if (y>=1 && j==y*nx+x){
+ int k;
+ for (k = j-2*nx; k <=j+2*nx ;) {
+ uList.set(k-1,U);
+ uList.set(k-2,U);
+ uList.set(k+1,U);
+ uList.set(k+2,U);
+ vList.set(k-1,V);
+ vList.set(k-2,V);
+ vList.set(k+1,V);
+ vList.set(k+2,V);
+ k=k+nx;
+ }
+ uList.set(j,U);
+ vList.set(j,V);
+ }
+ }
+ }
+ }
+ String uData = "\"" + "data" + "\"" + ": " + uList;
+ String vData = "\"" + "data" + "\"" + ": " + vList;
+ String s1 = "[" + "{" + header1 + ", " + uData + "}" + ", " + "{" + header2 + ", " + vData + "}" + "]";
+ JSONArray jsonArray = JSONArray.parseArray(s1);
+
+ Double monitorLo=monitorPoint.getLongitude();
+ Double monitorLa=monitorPoint.getLatitude();
+ 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);
+ list.add(laLaMap);
+ return list;
}
+
}
--
Gitblit v1.8.0