275 lines
8.5 KiB
JavaScript
275 lines
8.5 KiB
JavaScript
import { config } from '../../config';
|
||
import CachePromise from '../../utils/cachepromise';
|
||
import { httpget } from '../../utils/request';
|
||
import apiurl from '../../service/apiurl';
|
||
import moment from 'moment';
|
||
|
||
export const WeatherSet24h = new CachePromise(
|
||
async () => {
|
||
const latest = await ShqxYjhisLatest.get();
|
||
if (!latest) {
|
||
return null;
|
||
}
|
||
|
||
return httpget(apiurl.yjhis.weather, {
|
||
filename: latest.rainFile,
|
||
x1: 108.615000,//config.extent[0],
|
||
y1: 29.315000,//config.extent[1],
|
||
x2: 109.345000,//config.extent[2],
|
||
y2: 30.055000,//config.extent[3],
|
||
//layers: '00.24, 00.01, 01.01, 02.01, 03.01,04.01,05.01,06.01,07.01,08.01,09.01,10.01,11.01,12.01,13.01,14.01,15.01,16.01,17.01,18.01,19.01,20.01,21.01,22.01,23.01,24.01'
|
||
layers:'00.24'
|
||
}).then(({ data }) => data)
|
||
.catch(() => null)
|
||
},
|
||
1000 * 60
|
||
);
|
||
|
||
//天气预报-网格雨量
|
||
export const WeatherSetTm24h = async (paramsTm) => {
|
||
const latest = await ShqxYjhisGet(paramsTm)
|
||
if (!latest) {
|
||
return null;
|
||
}
|
||
|
||
return httpget(apiurl.yjhis.weather, {
|
||
filename: latest.rainFile,
|
||
x1: 108.615000,//config.extent[0],
|
||
y1: 29.315000,//config.extent[1],
|
||
x2: 109.345000,//config.extent[2],
|
||
y2: 30.055000,//config.extent[3],
|
||
layers: '00.24, 00.01, 01.01, 02.01, 03.01,04.01,05.01,06.01,07.01,08.01,09.01,10.01,11.01,12.01,13.01,14.01,15.01,16.01,17.01,18.01,19.01,20.01,21.01,22.01,23.01,24.01'
|
||
// layers:'00.24'
|
||
}).then(({ data }) => data)
|
||
.catch(() => null)
|
||
}
|
||
|
||
//天气预报-网格雨量24
|
||
export const WeatherSetTm24h2 = async (paramsTm) => {
|
||
const latest = await ShqxYjhisGet(paramsTm)
|
||
if (!latest) {
|
||
return null;
|
||
}
|
||
|
||
return httpget(apiurl.yjhis.weather, {
|
||
filename: latest.rainFile,
|
||
x1: 108.62318959955861,//108.615000,//config.extent[0],
|
||
y1: 29.328651167767397,//29.315000,//config.extent[1],
|
||
x2: 109.33730092768361,//109.345000,//config.extent[2],
|
||
y2: 30.04791233720099,//30.055000,//config.extent[3],
|
||
// layers: '00.24, 00.01, 01.01, 02.01, 03.01,04.01,05.01,06.01,07.01,08.01,09.01,10.01,11.01,12.01,13.01,14.01,15.01,16.01,17.01,18.01,19.01,20.01,21.01,22.01,23.01,24.01'
|
||
layers:'00.24'
|
||
}).then(({ data }) => data)
|
||
.catch(() => null)
|
||
}
|
||
|
||
//天气预报-网格雨量2h
|
||
export const WeatherSetTm2h = async (paramsTm) => {
|
||
const latest = await ShqxYjhis2hGet(paramsTm)
|
||
if (!latest) {
|
||
return null;
|
||
}
|
||
|
||
return httpget(apiurl.yjhis.radar, {
|
||
filename: latest.rainFile,
|
||
x1: 108.62318959955861,//108.615000,//config.extent[0],
|
||
y1: 29.328651167767397,//29.315000,//config.extent[1],
|
||
x2: 109.33730092768361,//109.345000,//config.extent[2],
|
||
y2: 30.04791233720099,//30.055000,//config.extent[3],
|
||
// layers: '00.24, 00.01, 01.01, 02.01, 03.01,04.01,05.01,06.01,07.01,08.01,09.01,10.01,11.01,12.01,13.01,14.01,15.01,16.01,17.01,18.01,19.01,20.01,21.01,22.01,23.01,24.01'
|
||
// layers:'00.24'
|
||
}).then(({ data }) => data)
|
||
.catch(() => null)
|
||
}
|
||
|
||
/**
|
||
* 时间轴,当前时间右侧的气象预报数据
|
||
* */
|
||
export const WeatherSetRightQx = new CachePromise(
|
||
async () => {
|
||
/**
|
||
*取当前系统时间
|
||
① 如果当前系统时间是08:15之前的时间,取前一天20:00的数据
|
||
② 如果当前系统时间是08:15之后的且是20:00之前的,取当天的08:00
|
||
③ 如果当前系统时间是08:15之后的且是20:00之后的,取当天的20:00
|
||
这个grb/get接口报错或没返回值等,就提示:“没有对应的预报数据”
|
||
* */
|
||
let paramsTm = "";
|
||
let defalut1 = moment().format("YYYY-MM-DD 08:15");
|
||
let defalut2 = moment().format("YYYY-MM-DD 20:00");
|
||
let currentHM = moment().format("YYYY-MM-DD HH:mm");
|
||
|
||
if(moment(currentHM).isBefore(defalut1)){
|
||
paramsTm = moment().add(-1, 'day').format("YYYYMMDD20");
|
||
}else{
|
||
if(moment(currentHM).isBefore(defalut2)){
|
||
paramsTm = moment().format("YYYYMMDD08");
|
||
}else{
|
||
paramsTm = moment().format("YYYYMMDD20");
|
||
}
|
||
}
|
||
|
||
//console.log("paramsTm 63++++",paramsTm);
|
||
|
||
const latest = await ShqxYjhisGet(paramsTm);
|
||
if (!latest) {
|
||
return null;
|
||
}
|
||
|
||
//let lastH = latest.tm.substring(12,13);
|
||
let lastH = latest.tm.substring(11,13);
|
||
let currentH = moment().format("H");
|
||
let currentM = moment().format("m");
|
||
|
||
let currentTime = "";
|
||
if(currentM>15){
|
||
currentTime = currentH;
|
||
}else{
|
||
currentTime = Number(currentH) - 1;
|
||
}
|
||
//console.log("currentTime 58++++",currentTime);
|
||
//console.log("lastH 58++++",lastH);
|
||
//偏移量
|
||
let pylNum = Number(currentTime) - Number(lastH);
|
||
//console.log("pylNum 61++++",pylNum);
|
||
|
||
let layers = ' ';
|
||
for (let i = pylNum; i <= 24; i++) {
|
||
layers += (i>=10?String(i):"0"+String(i))+".01, ";
|
||
}
|
||
//console.log("layers 67++++",layers);
|
||
|
||
return httpget(apiurl.yjhis.weather, {
|
||
filename: latest.rainFile,//"Z_NWGD_C_BCWH_20230213170706_P_RFFC_SPCC-ER01_202302132000_02401.GRB2",//latest.rainFile,
|
||
x1: 108.62318959955861,//108.615000,//config.extent[0],
|
||
y1: 29.328651167767397,//29.315000,//config.extent[1],
|
||
x2: 109.33730092768361,//109.345000,//config.extent[2],
|
||
y2: 30.04791233720099,//30.055000,//config.extent[3],
|
||
layers: layers
|
||
}).then(({ data }) => {
|
||
return [...data]
|
||
})
|
||
.catch(() => null)
|
||
},
|
||
1000 * 60
|
||
);
|
||
|
||
//按时间获取天气预报24h
|
||
export const WeatherSetRightQx2 =async (myTm) => {
|
||
|
||
const paramsTm = myTm
|
||
//console.log("paramsTm 63++++",paramsTm);
|
||
const latest = await ShqxYjhisGet(paramsTm);
|
||
if (!latest) {
|
||
return null;
|
||
}
|
||
|
||
//let lastH = latest.tm.substring(12,13);
|
||
let lastH = latest.tm.substring(11,13);
|
||
let currentH = moment().format("H");
|
||
let currentM = moment().format("m");
|
||
let currentTime = "";
|
||
if(currentM>15){
|
||
currentTime = currentH;
|
||
}else{
|
||
currentTime = Number(currentH) - 1;
|
||
}
|
||
//console.log("currentTime 58++++",currentTime);
|
||
//console.log("lastH 58++++",lastH);
|
||
//偏移量
|
||
let pylNum = 0//Number(currentTime) - Number(lastH);
|
||
//console.log("pylNum 61++++",pylNum);
|
||
|
||
let layers = ' ';
|
||
for (let i = pylNum; i <= 24; i++) {
|
||
layers += (i>=10?String(i):"0"+String(i))+".01, ";
|
||
}
|
||
//console.log("layers 67++++",layers);
|
||
return httpget(apiurl.yjhis.weather, {
|
||
filename: latest.rainFile,//"Z_NWGD_C_BCWH_20230213170706_P_RFFC_SPCC-ER01_202302132000_02401.GRB2",//latest.rainFile,
|
||
x1: 108.62318959955861,//108.615000,//config.extent[0],
|
||
y1: 29.328651167767397,//29.315000,//config.extent[1],
|
||
x2: 109.33730092768361,//109.345000,//config.extent[2],
|
||
y2: 30.04791233720099,//30.055000,//config.extent[3],
|
||
layers: layers
|
||
}).then(({ data }) => {
|
||
return [...data]
|
||
})
|
||
.catch(() => null)
|
||
}
|
||
|
||
|
||
export const WeatherRadar = new CachePromise(
|
||
async () => {
|
||
const latest = await ShqxRadarhisLatest.get();
|
||
if (!latest) {
|
||
return null;
|
||
}
|
||
|
||
return httpget(apiurl.radarhis.weather, {
|
||
filename: latest.rainFile,
|
||
x1: config.extent[0],
|
||
y1: config.extent[1],
|
||
x2: config.extent[2],
|
||
y2: config.extent[3],
|
||
}).then(({ data }) => data)
|
||
.catch(() => null)
|
||
},
|
||
1000 * 60
|
||
);
|
||
|
||
export const WeatherRadar2 = async(tm) => {
|
||
const latest = await httpget('http://223.75.53.124:8005/radar/get', { tm })
|
||
if (!latest.data) {
|
||
return null;
|
||
}
|
||
return httpget('http://223.75.53.124:8005/res/radarlayer', {
|
||
filename: latest.data.rainFile,
|
||
}).then(({ data }) => data)
|
||
.catch(() => null)
|
||
|
||
}
|
||
|
||
export const ShqxYjhisLatest = new CachePromise(
|
||
() => httpget(`http://223.75.53.124:8005/grb/latest`, { adcd: localStorage.getItem('ADCD6') })
|
||
.then(({ data }) => {
|
||
data.intv = 24 * 60;
|
||
return data;
|
||
})
|
||
.catch(() => null),
|
||
5000
|
||
);
|
||
|
||
|
||
export const ShqxYjhisGet = (tm) => httpget(`http://223.75.53.124:8005/grb/get`, { tm })
|
||
.then(({ data }) => {
|
||
data.intv = 24 * 60;
|
||
return data;
|
||
}).catch(() => null)
|
||
|
||
export const ShqxYjhis2hGet = (tm) => httpget(`http://223.75.53.124:8005/radar/get`, { tm })
|
||
.then(({ data }) => {
|
||
data.intv = 24 * 60;
|
||
return data;
|
||
}).catch(() => null)
|
||
|
||
export const ShqxRadarhisLatest = new CachePromise(
|
||
() => httpget(apiurl.radarhis.latest, { adcd: localStorage.getItem('ADCD6') })
|
||
.then(({ data }) => {
|
||
data.intv = 2 * 60;
|
||
return data;
|
||
})
|
||
.catch(() => null),
|
||
5000
|
||
);
|
||
|
||
export const YjList =
|
||
(params) => httpget(apiurl.yjhis.find, {...params})
|
||
.then(({ data }) => data)
|
||
.catch(() => null);
|
||
|
||
//风险预警详情
|
||
export const fxyjDetails =
|
||
(params) => httpget(apiurl.yjhis.stat, {...params})
|
||
.then((data) => data)
|
||
.catch(() => null); |