|  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONArray; | 
|---|
|  |  |  | import com.alibaba.fastjson.JSON; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; | 
|---|
|  |  |  | import com.moral.api.config.Interceptor.UserHelper; | 
|---|
|  |  |  | import com.moral.api.config.mybatis.MybatisPlusConfig; | 
|---|
|  |  |  | import com.moral.api.entity.*; | 
|---|
|  |  |  | import com.moral.api.mapper.DeviceMapper; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.moral.api.mapper.HistoryHourlyMapper; | 
|---|
|  |  |  | import com.moral.api.pojo.dto.Wind.WindData; | 
|---|
|  |  |  | import com.moral.api.pojo.dto.historyFiveMinutely.DeviceAndFiveMinuteDataDTO; | 
|---|
|  |  |  | import com.moral.api.pojo.enums.SysDictTypeEnum; | 
|---|
|  |  |  | import com.moral.api.pojo.ext.wind.WindListExt; | 
|---|
|  |  |  | import com.moral.api.pojo.form.device.MonitorPointQueryForm; | 
|---|
|  |  |  | import com.moral.api.pojo.form.historyFiveMinutely.QueryDeviceAndFiveMinuteDataForm; | 
|---|
|  |  |  | import com.moral.api.pojo.vo.user.QxUser; | 
|---|
|  |  |  | import com.moral.api.service.DeviceService; | 
|---|
|  |  |  | import com.moral.api.service.HistoryFiveMinutelyService; | 
|---|
|  |  |  | import com.moral.api.service.MonitorPointService; | 
|---|
|  |  |  | import com.moral.api.service.SysDictTypeService; | 
|---|
|  |  |  | import com.moral.api.utils.UnitConvertUtils; | 
|---|
|  |  |  | import com.moral.constant.Constants; | 
|---|
|  |  |  | import com.moral.constant.RedisConstants; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.moral.util.RegionCodeUtils; | 
|---|
|  |  |  | import io.lettuce.core.GeoCoordinates; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.apache.commons.collections4.CollectionUtils; | 
|---|
|  |  |  | import org.apache.commons.lang3.StringUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.data.redis.core.RedisTemplate; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.util.ObjectUtils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * <p> | 
|---|
|  |  |  | 
|---|
|  |  |  | DeviceService deviceService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | DeviceMapper deviceMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SysDictTypeService sysDictTypeService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<Map<String, Object>> queryDeviceAndFiveMinuteData(QueryDeviceAndFiveMinuteDataForm form) { | 
|---|
|  |  |  | 
|---|
|  |  |  | //风场数据 | 
|---|
|  |  |  | windData = historyFiveMinutelyMapper.getAreaWindData(params); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return getWindData(windData); | 
|---|
|  |  |  | return getWindData(windData,params); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | map.put("lat", Lat * 180 / Math.PI); | 
|---|
|  |  |  | return map; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private int windDate(String ids){ | 
|---|
|  |  |  | int num = 200; | 
|---|
|  |  |  | if(StringUtils.isEmpty(ids)){ | 
|---|
|  |  |  | return num; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Integer> list = Arrays.asList(ids.split(",")).stream().map(s->Integer.parseInt(s.trim())).collect(Collectors.toList()); | 
|---|
|  |  |  | LambdaQueryChainWrapper<MonitorPoint> wrapper = monitorPointService.lambdaQuery(); | 
|---|
|  |  |  | wrapper.in(MonitorPoint::getId,list); | 
|---|
|  |  |  | List<MonitorPoint> resultList = wrapper.list(); | 
|---|
|  |  |  | if(CollectionUtils.isEmpty(resultList)){ | 
|---|
|  |  |  | return num; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<String> integerList = resultList.stream().map(s->s.getOrganizationId().toString()).collect(Collectors.toList()); | 
|---|
|  |  |  | List<SysDictData> sysDictList = sysDictTypeService.listWindAll(SysDictTypeEnum.WIND_FARM_SCOPE.value,integerList); | 
|---|
|  |  |  | if(CollectionUtils.isEmpty(sysDictList)){ | 
|---|
|  |  |  | return num; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | num = sysDictList.stream().mapToInt(s->Integer.parseInt(s.getDataValue())).max().getAsInt(); | 
|---|
|  |  |  | return num; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public List<Object> getWindData(List<WindData> windData) { | 
|---|
|  |  |  | public List<Object> getWindData(List<WindData> windData,Map<String, Object> params) { | 
|---|
|  |  |  | List<GeoCoordinates> points = new ArrayList<>(); | 
|---|
|  |  |  | int length = 2000; | 
|---|
|  |  |  | int perdlen = 200; | 
|---|
|  |  |  | Double loma = 0d; | 
|---|
|  |  |  | Double lomi = 0d; | 
|---|
|  |  |  | Double lama = 0d; | 
|---|
|  |  |  | Double lami = 0d; | 
|---|
|  |  |  | List<Double> loList = new ArrayList<>(); | 
|---|
|  |  |  | List<Double> laList = new ArrayList<>(); | 
|---|
|  |  |  | List<Map<String, Object>> mapList = new ArrayList<>(); | 
|---|
|  |  |  | Double U; | 
|---|
|  |  |  | Double V; | 
|---|
|  |  |  | //结果集 | 
|---|
|  |  |  | List<Object> list = new ArrayList<>(); | 
|---|
|  |  |  | List<Map<String, Object>> mapList = new ArrayList<>(); | 
|---|
|  |  |  | for (WindData data : windData) { | 
|---|
|  |  |  | //经度 | 
|---|
|  |  |  | Double longitude = data.getLongitude(); | 
|---|
|  |  |  | 
|---|
|  |  |  | map.put("la", latitude); | 
|---|
|  |  |  | map.put("U", U); | 
|---|
|  |  |  | map.put("V", V); | 
|---|
|  |  |  | map.put("mac", data.getMac()); | 
|---|
|  |  |  | mapList.add(map); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | laLaMap.put("minLo", lomi); | 
|---|
|  |  |  | laLaMap.put("maxLa", lama); | 
|---|
|  |  |  | laLaMap.put("minLa", lami); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int perdlen = windDate(Objects.nonNull(params.get("monitorPointList"))?params.get("monitorPointList").toString():null); | 
|---|
|  |  |  | int length = perdlen*10; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Double lo1 = lomi - length * 0.00001141; | 
|---|
|  |  |  | //Double lo1 = lomi - length * 0.000001141 * 2; | 
|---|
|  |  |  | Double lo2 = loma + length * 0.00001141; | 
|---|
|  |  |  | 
|---|
|  |  |  | int nums = Objects.nonNull(nx*ny)?nx*ny+100:100; | 
|---|
|  |  |  | List<Double> uList = new ArrayList<>(nums); | 
|---|
|  |  |  | List<Double> vList = new ArrayList<>(nums); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (int j = 0; j < nx * ny; j++) { | 
|---|
|  |  |  | uList.add(0.0); | 
|---|
|  |  |  | vList.add(0.0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int x; | 
|---|
|  |  |  | int y; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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)); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 微动风场 | 
|---|
|  |  |  | /* WindListExt windListExt = getWindList(mapList.get(i),loList,laList,500,50); | 
|---|
|  |  |  | if(Objects.nonNull(windListExt)&&Objects.nonNull(windListExt.getUValue()) ){ | 
|---|
|  |  |  | U = windListExt.getUValue(); | 
|---|
|  |  |  | V = windListExt.getVValue(); | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  | for (int j = 0; j < nx * ny; j++) { | 
|---|
|  |  |  | if (i == 0) { | 
|---|
|  |  |  | if ((y >= 2 && j == (y) * nx + x)) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /*WindListExt windList = getWindList(length,perdlen,params); | 
|---|
|  |  |  | for(int i =0; i< windList.getUList().size(); i++){ | 
|---|
|  |  |  | Double d = windList.getUList().get(i); | 
|---|
|  |  |  | if(Objects.nonNull(d)&& (!d.equals(0d))){ | 
|---|
|  |  |  | uList.set(i,d); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for(int i =0; i< windList.getVList().size(); i++){ | 
|---|
|  |  |  | Double d = windList.getVList().get(i); | 
|---|
|  |  |  | if(Objects.nonNull(d)&& (!d.equals(0d))){ | 
|---|
|  |  |  | vList.set(i,d); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  | /*//结果集 | 
|---|
|  |  |  | List<Object> list = new ArrayList<>(); | 
|---|
|  |  |  | String uData = "\"" + "data" + "\"" + ": " + uList; | 
|---|
|  |  |  | String vData = "\"" + "data" + "\"" + ": " + vList; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | list.add(jsonArray); | 
|---|
|  |  |  | list.add(centerPoint.get("lng")); | 
|---|
|  |  |  | list.add(centerPoint.get("lat")); | 
|---|
|  |  |  | list.add(laLaMap); | 
|---|
|  |  |  | list.add(laLaMap);*/ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String,Object> map = new HashMap<>(); | 
|---|
|  |  |  | map.put("uList",uList); | 
|---|
|  |  |  | map.put("vList",vList); | 
|---|
|  |  |  | map.put("dx",dx); | 
|---|
|  |  |  | map.put("dy",dy); | 
|---|
|  |  |  | map.put("nx",nx); | 
|---|
|  |  |  | map.put("ny",ny); | 
|---|
|  |  |  | map.put("la1",la1); | 
|---|
|  |  |  | map.put("la2",la2); | 
|---|
|  |  |  | map.put("lo1",lo1); | 
|---|
|  |  |  | map.put("lo2",lo2); | 
|---|
|  |  |  | map.put("laLaMap",laLaMap); | 
|---|
|  |  |  | return getWindData(map,centerPoint); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private WindListExt getWindList(int length,int perdlen,Map<String, Object> params){ | 
|---|
|  |  |  | params.put("time","2023-10-16 04:00"); | 
|---|
|  |  |  | String time = params.get("time").toString(); | 
|---|
|  |  |  | String timeUnits = DateUtils.stringToDateString(time, "yyyy-MM-dd HH:mm", DateUtils.yyyyMM_EN); | 
|---|
|  |  |  | params.put("timeUnits", timeUnits); | 
|---|
|  |  |  | List<WindData> windData = historyHourlyMapper.getArea(params); | 
|---|
|  |  |  | WindListExt windListExt = new WindListExt(); | 
|---|
|  |  |  | List<String> stringList = Arrays.asList("p5dnd7a0245400","p5dnd7a0245472","p5dnd7a0245374","p5dnd7a0245385"); | 
|---|
|  |  |  | List<GeoCoordinates> points = new ArrayList<>(); | 
|---|
|  |  |  | Double loma = 0d; | 
|---|
|  |  |  | Double lomi = 0d; | 
|---|
|  |  |  | Double lama = 0d; | 
|---|
|  |  |  | Double lami = 0d; | 
|---|
|  |  |  | List<Double> loList = new ArrayList<>(); | 
|---|
|  |  |  | List<Double> laList = new ArrayList<>(); | 
|---|
|  |  |  | List<Map<String, Object>> mapList = new ArrayList<>(); | 
|---|
|  |  |  | Double U = 0d; | 
|---|
|  |  |  | Double V = 0d; | 
|---|
|  |  |  | for (WindData data : windData) { | 
|---|
|  |  |  | //经度 | 
|---|
|  |  |  | Double longitude = data.getLongitude(); | 
|---|
|  |  |  | //纬度 | 
|---|
|  |  |  | Double latitude = data.getLatitude(); | 
|---|
|  |  |  | GeoCoordinates geoCoordinates = GeoCoordinates.create(longitude, latitude); | 
|---|
|  |  |  | points.add(geoCoordinates); | 
|---|
|  |  |  | loList.add(longitude); | 
|---|
|  |  |  | laList.add(latitude); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Object> map = new HashMap<>(); | 
|---|
|  |  |  | //风向 | 
|---|
|  |  |  | Double windDir = data.getWindDir(); | 
|---|
|  |  |  | //风速 | 
|---|
|  |  |  | Double windSpeed = data.getWindSpeed(); | 
|---|
|  |  |  | if (windDir == null) { | 
|---|
|  |  |  | windDir = 0d; | 
|---|
|  |  |  | windSpeed = 0d; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | double dir = (360.0 - (windDir + 180.0) * Math.PI / 180.0); | 
|---|
|  |  |  | //余弦值 | 
|---|
|  |  |  | U = windSpeed * Math.cos(dir); | 
|---|
|  |  |  | //三角正弦值 | 
|---|
|  |  |  | V = windSpeed * Math.sin(dir); | 
|---|
|  |  |  | if(stringList.contains(data.getMac())){ | 
|---|
|  |  |  | map.put("lo", longitude); | 
|---|
|  |  |  | map.put("la", latitude); | 
|---|
|  |  |  | map.put("U", U); | 
|---|
|  |  |  | map.put("V", V); | 
|---|
|  |  |  | map.put("mac", data.getMac()); | 
|---|
|  |  |  | mapList.add(map); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (loList.size() > 0) { | 
|---|
|  |  |  | loma = Collections.max(loList); | 
|---|
|  |  |  | lomi = Collections.min(loList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (laList.size() > 0) { | 
|---|
|  |  |  | lama = Collections.max(laList); | 
|---|
|  |  |  | lami = Collections.min(laList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | int nums = Objects.nonNull(nx*ny)?nx*ny+100:100; | 
|---|
|  |  |  | List<Double> uList = new ArrayList<>(nums); | 
|---|
|  |  |  | List<Double> vList = new ArrayList<>(nums); | 
|---|
|  |  |  | for (int j = 0; j < nx * ny; j++) { | 
|---|
|  |  |  | uList.add(0.0); | 
|---|
|  |  |  | vList.add(0.0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int x; | 
|---|
|  |  |  | int y; | 
|---|
|  |  |  | 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)); | 
|---|
|  |  |  | U = (Double) mapList.get(i).get("U"); | 
|---|
|  |  |  | V = (Double) mapList.get(i).get("V"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | windListExt.setUList(uList); | 
|---|
|  |  |  | windListExt.setVList(vList); | 
|---|
|  |  |  | return windListExt; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private List<Object> getWindData(Map<String,Object> map, Map<String, Double> centerPoint){ | 
|---|
|  |  |  | List<Object> list = new ArrayList<>(); | 
|---|
|  |  |  | String uData = "\"" + "data" + "\"" + ": " + map.get("uList"); | 
|---|
|  |  |  | String vData = "\"" + "data" + "\"" + ": " + map.get("vList"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String header1 = "\"" + "header" + "\"" + ": " + "{" + "\"" + "parameterUnit" + "\"" + ": " + "\"" + "m/s" + "\"" + ", " + "\"" + "parameterNumber" + "\"" + ": " + 2 + | 
|---|
|  |  |  | ", " + "\"" + "dx" + "\"" + ": " + map.get("dx") + ", " + "\"" + "dy" + "\"" + ": " + map.get("dy") + | 
|---|
|  |  |  | ", " + "\"" + "parameterNumberName" + "\"" + ": " + "\"" + "eastward_wind" + "\"" + ", " + "\"" + "la1" + "\"" + ": " + map.get("la1") + ", " + "\"" + "la2" + "\"" + ": " + map.get("la2") + | 
|---|
|  |  |  | ", " + "\"" + "parameterCategory" + "\"" + ": " + 2 + ", " + "\"" + "lo1" + "\"" + ": " + map.get("lo1") + ", " + "\"" + "lo2" + "\"" + ": " + map.get("lo2") + | 
|---|
|  |  |  | ", " + "\"" + "nx" + "\"" + ": " + map.get("nx") + ", " + "\"" + "ny" + "\"" + ": " + map.get("ny") + ", " + "\"" + "refTime" + "\"" + ": " + "\"" + "2020-07-22 23:00:00" + "\"" + "}"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String header2 = "\"" + "header" + "\"" + ": " + "{" + "\"" + "parameterUnit" + "\"" + ": " + "\"" + "m/s" + "\"" + ", " + "\"" + "parameterNumber" + "\"" + ": " + 3 + | 
|---|
|  |  |  | ", " + "\"" + "dx" + "\"" + ": " + map.get("dx") + ", " + "\"" + "dy" + "\"" + ": " + map.get("dy") + | 
|---|
|  |  |  | ", " + "\"" + "parameterNumberName" + "\"" + ": " + "\"" + "eastward_wind" + "\"" + ", " + "\"" + "la1" + "\"" + ": " + map.get("la1") + ", " + "\"" + "la2" + "\"" + ": " + map.get("la2") + | 
|---|
|  |  |  | ", " + "\"" + "parameterCategory" + "\"" + ": " + 2 + ", " + "\"" + "lo1" + "\"" + ": " + map.get("lo1") + ", " + "\"" + "lo2" + "\"" + ": " + map.get("lo2") + | 
|---|
|  |  |  | ", " + "\"" + "nx" + "\"" + ": " + map.get("nx") + ", " + "\"" + "ny" + "\"" + ": " + map.get("ny") + ", " + "\"" + "refTime" + "\"" + ": " + "\"" + "2020-07-22 23:00:00" + "\"" + "}"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String s1 = "[" + "{" + header1 + ", " + uData + "}" + ", " + "{" + header2 + ", " + vData + "}" + "]"; | 
|---|
|  |  |  | //System.out.println(s1); | 
|---|
|  |  |  | JSONArray jsonArray = JSONArray.parseArray(s1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | list.add(jsonArray); | 
|---|
|  |  |  | list.add(centerPoint.get("lng")); | 
|---|
|  |  |  | list.add(centerPoint.get("lat")); | 
|---|
|  |  |  | list.add(map.get("laLaMap")); | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|