regional forecast cleanup

This commit is contained in:
Matt Walsh 2022-08-04 22:26:09 -05:00
parent b4564ffe57
commit aaa5fd362f

View file

@ -8,9 +8,6 @@ class RegionalForecast extends WeatherDisplay {
constructor(navId, elemId) { constructor(navId, elemId) {
super(navId, elemId, 'Regional Forecast', true, true); super(navId, elemId, 'Regional Forecast', true, true);
// pre-load background image (returns promise)
this.backgroundImage = utils.image.load('images/BackGround5_1.png');
// timings // timings
this.timing.totalScreens = 3; this.timing.totalScreens = 3;
} }
@ -20,13 +17,13 @@ class RegionalForecast extends WeatherDisplay {
const weatherParameters = _weatherParameters ?? this.weatherParameters; const weatherParameters = _weatherParameters ?? this.weatherParameters;
// pre-load the base map // pre-load the base map
this.baseMap = 'images/Basemap2.png'; let baseMap = 'images/Basemap2.png';
if (weatherParameters.state === 'HI') { if (weatherParameters.state === 'HI') {
this.baseMap = 'images/HawaiiRadarMap4.png'; baseMap = 'images/HawaiiRadarMap4.png';
} else if (weatherParameters.state === 'AK') { } else if (weatherParameters.state === 'AK') {
this.baseMap = 'images/AlaskaRadarMap6.png'; baseMap = 'images/AlaskaRadarMap6.png';
} }
this.elem.querySelector('.map img').src = this.baseMap; this.elem.querySelector('.map img').src = baseMap;
// map offset // map offset
const offsetXY = { const offsetXY = {
@ -66,7 +63,7 @@ class RegionalForecast extends WeatherDisplay {
}); });
// get regional forecasts and observations (the two are intertwined due to the design of api.weather.gov) // get regional forecasts and observations (the two are intertwined due to the design of api.weather.gov)
const regionalForecastPromises = regionalCities.map(async (city) => { const regionalDataAll = await Promise.all(regionalCities.map(async (city) => {
try { try {
// get the point first, then break down into forecast and observations // get the point first, then break down into forecast and observations
const point = await utils.weather.getPoint(city.lat, city.lon); const point = await utils.weather.getPoint(city.lat, city.lon);
@ -109,10 +106,8 @@ class RegionalForecast extends WeatherDisplay {
console.log(e); console.log(e);
return false; return false;
} }
}); }));
// wait for the forecasts
const regionalDataAll = await Promise.all(regionalForecastPromises);
// filter out any false (unavailable data) // filter out any false (unavailable data)
const regionalData = regionalDataAll.filter((data) => data); const regionalData = regionalDataAll.filter((data) => data);
@ -328,7 +323,7 @@ class RegionalForecast extends WeatherDisplay {
return city.match(/[^-;/\\,]*/)[0].substr(0, 12); return city.match(/[^-;/\\,]*/)[0].substr(0, 12);
} }
async drawCanvas() { drawCanvas() {
super.drawCanvas(); super.drawCanvas();
// break up data into useful values // break up data into useful values
const { regionalData: data, sourceXY, offsetXY } = this.data; const { regionalData: data, sourceXY, offsetXY } = this.data;