From 38d5132281ea822300845b5f2a3736659bba9053 Mon Sep 17 00:00:00 2001 From: Matt Walsh Date: Mon, 20 Apr 2026 15:13:23 -0500 Subject: [PATCH] portrait regional forecast #167 --- .../scripts/modules/regionalforecast-utils.mjs | 4 ++-- server/scripts/modules/regionalforecast.mjs | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/server/scripts/modules/regionalforecast-utils.mjs b/server/scripts/modules/regionalforecast-utils.mjs index 50004f0..b2ddc59 100644 --- a/server/scripts/modules/regionalforecast-utils.mjs +++ b/server/scripts/modules/regionalforecast-utils.mjs @@ -209,14 +209,14 @@ const getMinMaxLatitudeLongitudeHI = (X, Y, OffsetX, OffsetY) => { }; }; -const getXYForCity = (City, MaxLatitude, MinLongitude, state, maxX = 580) => { +const getXYForCity = (City, MaxLatitude, MinLongitude, state, maxX = 580, maxY = 282) => { if (state === 'AK') getXYForCityAK(City, MaxLatitude, MinLongitude); if (state === 'HI') getXYForCityHI(City, MaxLatitude, MinLongitude); let x = (City.lon - MinLongitude) * 57; let y = (MaxLatitude - City.lat) * 70; if (y < 30) y = 30; - if (y > 282) y = 282; + if (y > maxY) y = maxY; if (x < 40) x = 40; if (x > maxX) x = maxX; diff --git a/server/scripts/modules/regionalforecast.mjs b/server/scripts/modules/regionalforecast.mjs index 69d084a..a7902f6 100644 --- a/server/scripts/modules/regionalforecast.mjs +++ b/server/scripts/modules/regionalforecast.mjs @@ -21,6 +21,7 @@ const scaling = () => { // available space const available = { x: 640, + y: 282, }; // map offset @@ -29,9 +30,16 @@ const scaling = () => { y: 117, }; - if (settings.wide?.value && settings.enhanced?.value) { - mapOffsetXY.x = 320; - available.x = 854; + if (settings.enhanced?.value) { + if (settings.wide?.value) { + mapOffsetXY.x = 320; + available.x = 854; + } + + if (settings.portrait?.value) { + mapOffsetXY.y = 400; + available.y = 970; + } } return { mapOffsetXY, @@ -121,7 +129,7 @@ class RegionalForecast extends WeatherDisplay { } // get XY on map for city - const cityXY = utils.getXYForCity(city, minMaxLatLon.maxLat, minMaxLatLon.minLon, this.weatherParameters.state, available - 60); + const cityXY = utils.getXYForCity(city, minMaxLatLon.maxLat, minMaxLatLon.minLon, this.weatherParameters.state, available.x - 60, available.y); // wait for the regional observation if it's not done yet const observation = await observationPromise;