| | |
| | | package com.moral.service.impl;
|
| | |
|
| | | import java.util.*;
|
| | | import java.util.stream.Collectors;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | | import javax.validation.constraints.NotNull;
|
| | |
|
| | | import com.alibaba.fastjson.JSONArray;
|
| | | import com.alibaba.fastjson.TypeReference;
|
| | | import com.github.pagehelper.Page;
|
| | | import com.github.pagehelper.PageHelper;
|
| | |
| | | import com.moral.common.util.RedisUtils;
|
| | | import com.moral.common.util.ValidateUtil;
|
| | | import com.moral.entity.Device;
|
| | | import com.moral.entity.DeviceAndWind;
|
| | | import com.moral.entity.DeviceProperty;
|
| | | import com.moral.entity.MonitorPoint;
|
| | | import com.moral.mapper.DeviceMapper;
|
| | | import com.moral.mapper.DevicePropertyMapper;
|
| | | import com.moral.mapper.DeviceVersionMapper;
|
| | |
| | | import com.moral.mapper.OrganizationMapper;
|
| | | import com.moral.service.AccountService;
|
| | | import com.moral.service.DeviceService;
|
| | | import com.moral.util.LatLngTransformation;
|
| | | import com.moral.util.TkMybatisUtils;
|
| | |
|
| | | import org.apache.commons.collections.MapUtils;
|
| | |
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | | import org.springframework.util.ObjectUtils;
|
| | |
|
| | | import tk.mybatis.mapper.entity.Example;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | | import javax.validation.constraints.NotNull;
|
| | |
|
| | | import java.util.ArrayList;
|
| | | import java.util.Arrays;
|
| | | import java.util.Date;
|
| | | import java.util.HashMap;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | | import java.util.stream.Collectors;
|
| | |
|
| | | @Service
|
| | | public class DeviceServiceImpl implements DeviceService {
|
| | |
| | | */
|
| | | @Override
|
| | | public List<Device> query(Map<String, Object> params) {
|
| | | List<Integer> dv = deviceMapper.getHasWindDirAndWindSpeedDeviceVersion();
|
| | | Object orgIdObj = params.get("orgId");
|
| | | List<Device> deviceList = null;
|
| | | if (orgIdObj != null) {
|
| | |
| | | List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
|
| | | params.put("orgIds", orgIds);
|
| | | deviceList = deviceMapper.selectByMap(params);
|
| | | loadDeviceState(deviceList);
|
| | | // loadDeviceState(deviceList);
|
| | | }
|
| | | Example deviceExample = new Example(Device.class);//实例化
|
| | | Example.Criteria deviceCriteria = deviceExample.createCriteria();
|
| | | deviceCriteria.orEqualTo("isDelete", Constants.IS_DELETE_FALSE);
|
| | | List<Device> devicesInfo = deviceMapper.selectByExample(deviceExample);
|
| | | Example monitorExample = new Example(MonitorPoint.class);//实例化
|
| | | Example.Criteria monitorCriteria = monitorExample.createCriteria();
|
| | | monitorCriteria.orEqualTo("isDelete", Constants.IS_DELETE_FALSE);
|
| | | List<MonitorPoint> monitorsInfo = monitorPointMapper.selectByExample(monitorExample);
|
| | | for (Device d : deviceList) {
|
| | | if (dv.contains(d.getDeviceVersionId())) {
|
| | | d.setHasWindInfo(true);
|
| | | } else {
|
| | | d.setHasWindInfo(false);
|
| | | }
|
| | | for (Device temp : devicesInfo) {
|
| | | if (d.getId().equals(temp.getId())) {
|
| | | d.setState(temp.getState());
|
| | | }
|
| | | }
|
| | | for (MonitorPoint mp : monitorsInfo) {
|
| | | if (d.getMonitorPointId().equals(mp.getId())) {
|
| | | d.setMonitorPoint(mp);
|
| | | }
|
| | | }
|
| | | }
|
| | | return deviceList;
|
| | | }
|
| | |
| | | }
|
| | | return null;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<String> getMacsByOrganizationId(List<Object> organizationIdList) {
|
| | | return deviceMapper.getMacsByOrganizationId(organizationIdList);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<Device> getDeviceById1(int id) {
|
| | | return deviceMapper.getDeviceById1(id);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<Device> getDeviceById2(int id) {
|
| | | return deviceMapper.getDeviceById2(id);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<Device> getDeviceById3(int id) {
|
| | | return deviceMapper.getDeviceById3(id);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<Device> queryDevice(Map<String, Object> params) {
|
| | | List<Integer> dv = deviceMapper.getHasWindDirAndWindSpeedDeviceVersion();
|
| | | Object orgIdObj = params.get("orgId");
|
| | | List<Device> deviceList = null;
|
| | | if (orgIdObj != null) {
|
| | | Integer orgId = Integer.parseInt(orgIdObj.toString());
|
| | | List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
|
| | | params.put("orgIds", orgIds);
|
| | | deviceList = deviceMapper.selectDevicesAll(params);
|
| | | }
|
| | | List<Device> deviceListHasWind=new ArrayList<>();
|
| | | for (Device d : deviceList) {
|
| | | if (dv.contains(d.getDeviceVersionId())) {
|
| | | deviceListHasWind.add(d);
|
| | | }
|
| | | }
|
| | | return deviceListHasWind;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public Map<String, Object> getAllFieldByMac(Map<String, Object> parameters) {
|
| | | Map<String, Object> deviceMap = deviceMapper.selectAllFieldByMac(parameters);
|
| | | return deviceMap;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<DeviceAndWind> getAllDevice() {
|
| | | return deviceMapper.getAllDevice();
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<String> getAllMac() {
|
| | | return deviceMapper.getAllMac();
|
| | | }
|
| | |
|
| | | @Override
|
| | | public Device byMacGetDevice(String mac) {
|
| | | return deviceMapper.byMacGetDevice(mac);
|
| | | }
|
| | |
|
| | | @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;
|
| | | 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 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);
|
| | | }
|
| | | 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-250*0.00001141;
|
| | | Double lo2=loma+250*0.00001141;
|
| | | Double la2=lami-250*0.00000899;
|
| | | Double la1=lama+250*0.00000899;
|
| | |
|
| | | Double dx=0.00001141*20;
|
| | | Double dy=0.00000899*20;
|
| | | 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);
|
| | | MonitorPoint monitorPoint=monitorPointMapper.byIdGetMonitorPoint(Integer.parseInt(id));
|
| | | 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;
|
| | | }
|
| | |
|
| | | @Override
|
| | | 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;
|
| | | }
|
| | |
|
| | | }
|