Merge branch 'mid-aug-24' into 'master'

Propagation prediction layers, US48 grid stats

See merge request gridtracker.org/gridtracker!324

If this is changing anything in the UI or operational behavior, please prepare to update the wiki!
master v1.24.0811
T Loomis 2024-08-12 16:26:25 +00:00
commit ffe0bc5468
17 zmienionych plików z 375 dodań i 68 usunięć

Wyświetl plik

@ -1,2 +1,7 @@
Running changes for next release (clear changes after each release please)
--------------------------------------------------------------------------
Map - Added layer attribution
Map - Added propagation prediction layers (MUF, foF2 NVIS, Sporadic-E)
Stats - Added US48 grids
System - BIGCTY update from August 9th

7
debian/changelog vendored
Wyświetl plik

@ -1,3 +1,10 @@
gridtracker (1.24.0811) unstable; urgency=low
- Map - Added layer attribution
- Map - Added propagation prediction layers (MUF, foF2 NVIS, Sporadic-E)
- Stats - Added US48 grids
- System - BIGCTY update from August 9th
-- Tag Loomis <n0ttl@gridtracker.org> Sun, 11 Aug 2024 00:00:00 -000
gridtracker (1.24.0801) unstable; urgency=low
- Map - Mouse tracker (Hotkey X) grid displays 6 characters
- System - Callsign databases now cleared from disk on disable

Wyświetl plik

@ -1,6 +1,6 @@
Name: {{{ git_name name=gridtracker }}}
Summary: GridTracker: An Amateur Radio Companion
Version: 1.24.0801
Version: 1.24.0811
Release: 1%{?dist}
BuildArch: noarch
Source0: {{{ git_dir_pack }}}
@ -40,6 +40,11 @@ DESTDIR=${RPM_BUILD_ROOT} make clean
%license %{_docdir}/%{name}/
%changelog
* Sun Aug 11 2024 Tag Loomis <n0ttl@gridtracker.org> - 1.24.0811-1
- Map - Added layer attribution
- Map - Added propagation prediction layers (MUF, foF2 NVIS, Sporadic-E)
- Stats - Added US48 grids
- System - BIGCTY update from August 9th
* Thu Aug 01 2024 Tag Loomis <n0ttl@gridtracker.org> - 1.24.0801-1
- Map - Mouse tracker (Hotkey X) grid displays 6 characters
- System - Callsign databases now cleared from disk on disable

Wyświetl plik

@ -557,6 +557,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</div>
<div id="radarButton" onclick="toggleNexrad()" class="iconButton" title="Toggle US Nexrad">
<img id="radarImg" src="./img/radar-button.png" class="buttonImg" />
</div>
<div id="predButton" onclick="cyclePredLayer()" class="iconButton" title="Cycle Prediction Layer">
<img id="predImg" src="./img/no-pred.png" class="buttonImg" />
</div>
<div id="conditionsButton" onclick="showConditionsBox();" class="iconButton" title="View Current Conditions">
<img src="./img/conditions.png" class="buttonImg" />
@ -602,6 +605,59 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<img id="msgImg" src="./img/gt_chat.png" class="buttonImg" />
</div>
</div>
<div id="predDiv" style="border: 1px solid rgb(0, 247, 255); margin: 1px; margin-bottom: 1px; margin-top: 2px;" class="roundBorder">
<table align="center" >
<tr>
<td id="mufTitle" colspan="3">Maximum Usable Frequency</td>
<td id="fof2Title" colspan="3">Critical Frequency NVIS</td>
<td id="epiTitle" colspan="3">Es Probability Index</td>
</tr>
<tr id="epiTimeTr">
<td colspan="3" align="center" id="epiTimeTd"></td>
</tr>
<tr id="epiTimeOffsetTr">
<td id="epiTimeOffsetTd">0</td>
<td colspan="2">
<input type="range" min="-11" max="11" value="0" step="1" style="width: auto" id="epiTimeValue"
oninput="changeEpiTimeValue();" />
</td>
</tr>
<tr id="epiBarTr">
<td colspan="3" style="background: rgb(0,0,0);
background: linear-gradient(90deg,
rgb(114,136,144) 0%,
rgb(57,221,206) 11%,
rgb(77,152,23) 23%,
rgb(247,245,0) 34%,
rgb(251,184,0) 46%,
rgb(219,45,1) 57%,
rgb(112,48,160) 69%,
rgb(242,242,242) 80%,
rgb(92,92,97) 100%);" class="barGraph"></td>
</tr>
<tr id="epiRangeTr">
<td align="left">Poor</td>
<td></td>
<td align="right">Good</td>
</tr>
<tr id="mufBarTr">
<td colspan="3" style="background: linear-gradient(90deg,
rgb(184,159,190) 0%,
rgb(170,219,209) 50%,
rgb(253,246,171) 100%);width: 170px;" class="barGraph"></td>
</tr>
<tr id="mufRangeTr">
<td align="left">&lt;5</td>
<td align="right">14</td>
<td align="right">&gt;28</td>
</tr>
<tr id="fof2RangeTr">
<td align="left">&lt;1</td>
<td align="right">5</td>
<td align="right">&gt;14</td>
</tr>
</table>
</div>
<div id="SpotsDiv"
style="display: none; border: 1px solid yellow; margin: 1px; margin-bottom: 1px; margin-top: 2px"
class="roundBorder">
@ -2095,6 +2151,20 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</tr>
</table>
</div>
<div class="mapItem" id="predOpacityDiv">
<table align="center">
<tr>
<td align="center">Prediction Layer Opacity</td>
<td align="left" id="predOpacityTd">0.3</td>
</tr>
<tr align="center">
<td colspan="2">
<input type="range" min="0.05" max="1" value="0.3" step="0.01" class="slider" id="predOpacityValue"
oninput="changePredOpacityValue();" />
</td>
</tr>
</table>
</div>
<br />
<div class="mapItem">
<table align="center">

Wyświetl plik

@ -7,13 +7,13 @@
},
"Mapnik by OpenStreetMap (Deutsch)": {
"url": "http://{a-c}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png",
"attributions": "<a href=\"http://openstreetmap.de/\" target=\"_blank\">OpenStreetMap Deutschland</a>",
"attributions": "<a href=\"http://openstreetmap.de/\" target=\"_blank\">OpenStreetMap DE</a>",
"minZoom": 0,
"maxZoom": 18
},
"Mapnik by OpenStreetMap (français)": {
"url": "http://{a-c}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png",
"attributions": "<a href=\"http://openstreetmap.fr/\" target=\"_blank\">OpenStreetMap France</a>",
"attributions": "<a href=\"http://openstreetmap.fr/\" target=\"_blank\">OpenStreetMap FR</a>",
"minZoom": 0,
"maxZoom": 18
},
@ -26,39 +26,27 @@
},
"National Geographic by Esri (English)": {
"url": "http://server.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/{z}/{y}/{x}",
"attributions": "&copy; Esri &mdash; National Geographic",
"attributions": "Esri &mdash; National Geographic",
"maxZoom": 16
},
"Street by Esri (English)": {
"url": "http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}",
"attributions": "&copy; Esri"
"attributions": "Esri"
},
"Topographical by Esri (English)": {
"url": "http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}",
"attributions": "&copy; Esri"
"attributions": "Esri"
},
"Physical by Esri (No Labels)": {
"url": "http://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/tile/{z}/{y}/{x}",
"attributions": "&copy; Esri",
"attributions": "Esri",
"maxZoom": 8
},
"Satellite by Esri (No Labels)": {
"url": "http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
"attributions": "&copy; Esri",
"attributions": "Esri",
"maxZoom": 18
},
"Wikimedia (Intl)": {
"url": "http://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",
"attributions": "<a target=\"_blank\" href=\"https://wikimediafoundation.org/wiki/Maps_Terms_of_Use\">Wikimedia</a>",
"minZoom": 1,
"maxZoom": 19
},
"Wikimedia (No Labels)": {
"url": "http://maps.wikimedia.org/osm/{z}/{x}/{y}.png",
"attributions": "<a target=\"_blank\" href=\"https://wikimediafoundation.org/wiki/Maps_Terms_of_Use\">Wikimedia</a>",
"minZoom": 1,
"maxZoom": 19
},
"Humanitarian by OpenStreetMap (Intl)": {
"url": "http://{a-c}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",
"attributions": "<a href=\"http://openstreetmap.org/\" target=\"_blank\">OpenStreetMap</a>",
@ -67,68 +55,63 @@
},
"Dark Gray by Esri (English)": {
"url": "http://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Dark_Gray_Base/MapServer/tile/{z}/{y}/{x}",
"attributions": "&copy; Esri",
"attributions": "Esri",
"maxZoom": 19
},
"Light Gray by Esri (English)": {
"url": "http://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}",
"attributions": "&copy; Esri",
"attributions": "Esri",
"maxZoom": 16
},
"City Lights by NASA (No Labels)": {
"url": "http://map1.vis.earthdata.nasa.gov/wmts-webmerc/VIIRS_CityLights_2012/default/GoogleMapsCompatible_Level8/{z}/{y}/{x}.jpg",
"attributions": "&copy; NASA",
"maxZoom": 8
},
"Midnight Commander by Carto (No Labels)": {
"url": "https://cartocdn_{a-d}.global.ssl.fastly.net/base-midnight/{z}/{x}/{y}.png",
"attributions": "&copy; Carto",
"attributions": "Carto",
"maxZoom": 19
},
"Antique by Carto (Minimal Labels)": {
"url": "https://cartocdn_{a-d}.global.ssl.fastly.net/base-antique/{z}/{x}/{y}.png",
"attributions": "&copy; Carto",
"attributions": "Carto",
"maxZoom": 19
},
"Eco by Carto (Minimal Labels)": {
"url": "https://cartocdn_{a-d}.global.ssl.fastly.net/base-eco/{z}/{x}/{y}.png",
"attributions": "&copy; Carto",
"attributions": "Carto",
"maxZoom": 19,
"oldIndex": 25
},
"Voyager by Carto (English)": {
"url": "https://{a-d}.basemaps.cartocdn.com/rastertiles/voyager_labels_under/{z}/{x}/{y}.png",
"attributions": "&copy; Carto",
"attributions": "Carto",
"maxZoom": 19
},
"Positron by Carto (English)": {
"url": "https://{a-d}.basemaps.cartocdn.com/rastertiles/light_all/{z}/{x}/{y}.png",
"attributions": "&copy; Carto",
"attributions": "Carto",
"maxZoom": 19
},
"Dark Matter by Carto (English)": {
"url": "https://{a-d}.basemaps.cartocdn.com/rastertiles/dark_all/{z}/{x}/{y}.png",
"attributions": "&copy; Carto",
"attributions": "Carto",
"maxZoom": 19
},
"Voyager by Carto (No Labels)": {
"url": "https://{a-d}.basemaps.cartocdn.com/rastertiles/voyager_nolabels/{z}/{x}/{y}.png",
"attributions": "&copy; Carto",
"attributions": "Carto",
"maxZoom": 19
},
"Positron by Carto (No Labels)": {
"url": "https://{a-d}.basemaps.cartocdn.com/rastertiles/light_nolabels/{z}/{x}/{y}.png",
"attributions": "&copy; Carto",
"attributions": "Carto",
"maxZoom": 19
},
"Dark Matter by Carto (No Labels)": {
"url": "https://{a-d}.basemaps.cartocdn.com/rastertiles/dark_nolabels/{z}/{x}/{y}.png",
"attributions": "&copy; Carto",
"attributions": "Carto",
"maxZoom": 19
},
"Flat Blue by Carto (No Labels)": {
"url": "https://cartocdn_{a-d}.global.ssl.fastly.net/base-flatblue/{z}/{x}/{y}.png",
"attributions": "&copy; Carto",
"attributions": "Carto",
"maxZoom": 19
},
"Satellite by MapTiler (No Labels)(Offline)": {
@ -140,7 +123,7 @@
},
"HamGames by N0TTL (Intl)(Offline)": {
"url": "/map/hamgames/{z}/{x}/{y}.png",
"attributions": "Mapbox",
"attributions": "N0TTL",
"minZoom": 0,
"maxZoom": 4,
"offline": true

Wyświetl plik

@ -1519,7 +1519,7 @@
"VE9TEN/5",
"VE9XX/6",
"VE9ZP/4",
"VER20240723",
"VER20240809",
"VF0X",
"VF0X/M",
"VO/DL2GF",
@ -2565,7 +2565,6 @@
"AB9OM",
"AC2UJ",
"AC3DF",
"AC5D",
"AC5ZY",
"AC7EV",
"AC9IZ",
@ -2652,7 +2651,6 @@
"K8OUA",
"K8VEZ",
"K8ZO",
"K9DUG",
"K9ROB",
"K9UL",
"K9YJW",
@ -3137,6 +3135,7 @@
"KK7IV",
"KK7IVL",
"KK7STL",
"KK7UFN",
"KL7D/M",
"KL7NC/IMD",
"KM4AGL",
@ -3171,6 +3170,7 @@
"KO4PTO",
"KO4VSC",
"KR4WV",
"KT7C",
"KV3X",
"KW4GV",
"KY7J",
@ -3288,6 +3288,7 @@
"W3ICG",
"W3JPN",
"W3MKG",
"W3REM",
"W4AUL",
"W4BVB",
"W4BZB",
@ -3445,7 +3446,6 @@
"direct": [
"AB9OH",
"AF7MN",
"K8R",
"KD2UVU",
"KD8TFY",
"KG7ITH",
@ -3499,9 +3499,7 @@
"confirmed_bands": {},
"worked_modes": {},
"confirmed_modes": {},
"direct": [
"VERSION"
],
"direct": [],
"prefixITU": {},
"prefixCQ": {},
"directITU": {},
@ -10887,6 +10885,7 @@
"R55TV",
"R5AF/0",
"R5AF/P",
"R5GA/9",
"R5QA/0",
"R5QA/9",
"R5QA/M",
@ -10990,6 +10989,8 @@
"RA/DK2AI/0",
"RA/DK2AI/M",
"RA/DL6XK",
"RA/EA8RM",
"RA/EA8RM/P",
"RA/EW1RR",
"RA/EW2R",
"RA/EW8ADX",
@ -11378,6 +11379,7 @@
"RM90WF",
"RM9H",
"RM9I",
"RM9I/M",
"RM9RZ/0",
"RM9RZ/9/P",
"RM9RZ/A",
@ -12080,6 +12082,7 @@
"RV9V",
"RV9WB/8",
"RV9WB/9/M",
"RV9WB/M",
"RV9WGF/4/M",
"RV9WMZ/9/M",
"RV9WMZ/9/P",
@ -12376,6 +12379,7 @@
"UA4RX/0",
"UA4SBZ/0",
"UA4WHX/9",
"UA5B/0",
"UA5B/8",
"UA6A/9",
"UA6ANU/0",
@ -16457,6 +16461,7 @@
"RZ9O/0": "35",
"UA3AAC/0": "35",
"UA3AKO/0": "35",
"UA5B/0": "35",
"UA6ANU/0": "35",
"UA9AR/0": "35",
"UD6AOP/0": "35",
@ -16516,6 +16521,7 @@
"R3UBL/9": "18",
"R4CDO/9/M": "18",
"R4WBS/9": "18",
"R5GA/9": "18",
"RA3TND/0": "19",
"RA3TND/9": "18",
"RA4AAJ/9": "18",
@ -17023,6 +17029,7 @@
"RV90WB": "16",
"RV9CHB/4": "16",
"RV9CX/4/M": "16",
"RV9WB/M": "16",
"RW3SN/9": "16",
"RW3XX/9": "16",
"RW4WA/9/P": "16",
@ -17758,6 +17765,7 @@
"RZ9O/0": "19",
"UA3AAC/0": "19",
"UA3AKO/0": "19",
"UA5B/0": "19",
"UA6ANU/0": "19",
"UA9AR/0": "19",
"UD6AOP/0": "19",
@ -20692,6 +20700,7 @@
"R4IN",
"R4IO",
"R4IT",
"R4IY/9",
"R4PBF/M",
"R4PH",
"R4RB",
@ -21493,7 +21502,6 @@
"RV9WB/3",
"RV9WB/4",
"RV9WB/6",
"RV9WB/M",
"RV9WKI/4/M",
"RV9WKI/4/P",
"RV9WLE/3/P",
@ -21539,6 +21547,7 @@
"RW9JV/3",
"RW9JZ/6",
"RW9KW/3",
"RW9OW/4",
"RW9QA/1",
"RW9QA/6",
"RW9SW/4",
@ -22759,6 +22768,7 @@
"UA9XK/1": "19",
"UA9XMC/1": "19",
"UA9XRK/1": "19",
"UB5O/1": "19",
"UE25IK": "19",
"UE80AR": "19",
"UE80AR/M": "19",
@ -22817,7 +22827,6 @@
"RP79MU": "19",
"RT1Z": "19",
"RU1ZC/ANT": "19",
"RU5D/M": "19",
"RW1ZQ/LH": "19",
"RY83HN": "19",
"RZ1Z": "19",
@ -26020,6 +26029,7 @@
"LU1FSE/F",
"LU1FUJ/H",
"LU1FVG/F",
"LU1GAS/GA",
"LU1GQQ/GP",
"LU1GR/GP",
"LU1HAK/H",
@ -37063,6 +37073,7 @@
"K4LCR",
"K4PFH",
"K4VIC",
"K4Z",
"K5YJR",
"K6BOT",
"K6VH",
@ -37222,6 +37233,7 @@
"KK4FKY",
"KK4GKZ",
"KK4HLB",
"KK4WDN",
"KM4GAU",
"KM4VDZ",
"KM4WGI",
@ -39522,6 +39534,7 @@
"SX2IMA/J",
"SX50AHH",
"SX52OA",
"SX5FOC",
"SX8DI/LH",
"SX90IARU",
"SX94MIKIS",
@ -40753,7 +40766,9 @@
"confirmed_bands": {},
"worked_modes": {},
"confirmed_modes": {},
"direct": [],
"direct": [
"VERSION"
],
"prefixITU": {},
"prefixCQ": {},
"directITU": {},
@ -41560,7 +41575,6 @@
"GB0BTC",
"GB0BVC",
"GB0C",
"GB0CAS",
"GB0CBS",
"GB0COA",
"GB0CSC",
@ -42928,6 +42942,7 @@
"GB1SLH",
"GB1TAY",
"GB1TMH",
"GB1URC",
"GB1WLG",
"GB20YOTA",
"GB22GM",
@ -43087,7 +43102,9 @@
"GB4GD",
"GB4GDS",
"GB4GS",
"GB4HRC",
"GB4IE",
"GB4IMF",
"GB4JCM",
"GB4JOA",
"GB4JPJ",
@ -43160,6 +43177,7 @@
"GB8RU",
"GB8RUM",
"GB8VED",
"GB8VJ",
"GB90RSGB/11",
"GB90RSGB/12",
"GB90RSGB/21",
@ -43169,6 +43187,7 @@
"GB9AAW",
"GB9DAT",
"GB9GVC",
"GB9HRC",
"GB9OO",
"GB9ROC",
"GB9UL",
@ -45808,6 +45827,7 @@
"AC2H",
"AC4HV",
"AC5AZ",
"AC5D",
"AC5XK",
"AC6H",
"AC6MS",
@ -45948,6 +45968,7 @@
"AH6JN/M",
"AH6JS",
"AH6JZ",
"AH6K",
"AH6KB",
"AH6KD",
"AH6KG",
@ -46388,7 +46409,6 @@
"K4XS",
"K4XSS",
"K4YT/M",
"K4Z",
"K4Z/ANT",
"K5BGG",
"K5D",
@ -46481,12 +46501,14 @@
"K8K",
"K8KH",
"K8O",
"K8R",
"K8T",
"K8YUM",
"K8ZB",
"K8ZZ/M",
"K9AGI",
"K9BZ",
"K9DUG",
"K9EA",
"K9EA/P",
"K9ETM",
@ -46519,6 +46541,7 @@
"KA4JAJ",
"KA4KSE",
"KA5ERI",
"KA5NUL",
"KA5QZS",
"KA5UCH",
"KA5WMF",
@ -46958,6 +46981,7 @@
"KH2JK",
"KH2JX",
"KH2KD",
"KH2KH",
"KH2LU",
"KH2LW",
"KH2LZ",
@ -47888,6 +47912,7 @@
"KL4E",
"KL4EJ",
"KL4FX",
"KL4FZ",
"KL4GW",
"KL4H",
"KL4HA",
@ -47900,7 +47925,6 @@
"KL4KA",
"KL4KF",
"KL4KW",
"KL4LJ",
"KL4LS",
"KL4LV",
"KL4NE",
@ -48537,6 +48561,7 @@
"KP4CPP",
"KP4CSJ",
"KP4CSZ",
"KP4CTO",
"KP4CV",
"KP4CW",
"KP4CZ",
@ -49280,6 +49305,7 @@
"NL7LC",
"NL7LE",
"NL7LI",
"NL7LJ",
"NL7LO",
"NL7LR",
"NL7LY",
@ -49842,6 +49868,7 @@
"WH2S",
"WH2T",
"WH2U",
"WH2US",
"WH2W",
"WH2Z",
"WH6A",
@ -49989,6 +50016,7 @@
"WH6E/8",
"WH6EAA",
"WH6EAE",
"WH6EAI",
"WH6EBA",
"WH6EBH",
"WH6EBX",
@ -52190,6 +52218,7 @@
"N0SBC": "07",
"N0TXJ": "07",
"N0UGZ": "07",
"N1TV": "07",
"N2KLQ": "07",
"N3WWE": "07",
"N8MQ": "07",
@ -52812,6 +52841,7 @@
"KL2XF": "08",
"KL3PP": "08",
"KL3SP": "08",
"KL4FZ": "08",
"KL4KW": "08",
"KL4QG": "08",
"KL6RG": "08",
@ -53084,7 +53114,6 @@
"K4WEM": "08",
"K4XS": "08",
"K4YT/M": "08",
"K4Z": "08",
"K4Z/ANT": "08",
"K6CEE": "08",
"K6CH": "08",
@ -53093,6 +53122,7 @@
"K6YU": "08",
"K7DOE": "08",
"K7LD": "08",
"K9DUG": "08",
"K9UBS": "08",
"KA1UIK": "08",
"KA3JFE": "08",
@ -53188,6 +53218,7 @@
"KH2GUM/P": "08",
"KH2HB": "08",
"KH2KD": "08",
"KH2MV": "08",
"KH2NC": "08",
"KH2PM": "08",
"KH2RL": "08",
@ -53549,7 +53580,6 @@
"N1CNQ": "08",
"N1MXB": "08",
"N1SHV": "08",
"N1TV": "08",
"N1VCW": "08",
"N3JAB": "08",
"N3JUW": "08",
@ -53805,6 +53835,7 @@
"WH6DXT": "08",
"WH6DYV": "08",
"WH6DZ": "08",
"WH6EAI": "08",
"WH6ECQ": "08",
"WH6EFI": "08",
"WH6EFX": "08",
@ -54079,6 +54110,7 @@
"WP4ZW": "08",
"WV4M": "08",
"AA6MS": "07",
"AC5D": "07",
"AC7AB": "07",
"AD5S": "07",
"AD5XX": "07",
@ -54151,6 +54183,7 @@
"K5YV": "07",
"K7CLC": "07",
"K8YUM": "07",
"KA5NUL": "07",
"KA5UCH": "07",
"KA5WMF": "07",
"KB0JN": "07",
@ -54306,7 +54339,6 @@
"KL3ST": "07",
"KL3TB": "07",
"KL4JQ": "07",
"KL4LJ": "07",
"KL4LS": "07",
"KL4OG": "07",
"KL4QZ": "07",
@ -54474,6 +54506,7 @@
"NL7K/5": "07",
"NL7KB": "07",
"NL7LE": "07",
"NL7LJ": "07",
"NL7NP": "07",
"NL7OM": "07",
"NL7PD": "07",
@ -55552,7 +55585,7 @@
"KH2GG": "06",
"KH2GN": "06",
"KH2JA": "06",
"KH2MV": "06",
"KH2KH": "06",
"KH2QH": "06",
"KH2RK": "06",
"KH2SK": "06",
@ -56329,6 +56362,7 @@
"WH2ACV": "06",
"WH2AJF": "06",
"WH2T": "06",
"WH2US": "06",
"WH6ANB": "06",
"WH6ARU": "06",
"WH6ASB": "06",
@ -56587,6 +56621,7 @@
"K8JED": "08",
"K8K": "08",
"K8O": "08",
"K8R": "08",
"K8T": "08",
"K8ZZ/M": "08",
"K9ROO": "08",
@ -56720,6 +56755,7 @@
"AE3TT": "08",
"AH6DA": "08",
"AH6EZ/9": "08",
"AH6K": "08",
"AH6OM": "08",
"AH6PA": "08",
"AH6YL": "08",
@ -56807,6 +56843,7 @@
"KP3VA/M": "08",
"KP4CH": "08",
"KP4CI": "08",
"KP4CTO": "08",
"KP4GE/9": "08",
"KP4JEL": "08",
"KP4NKE": "08",
@ -57397,6 +57434,7 @@
"N0SBC": "04",
"N0TXJ": "04",
"N0UGZ": "04",
"N1TV": "04",
"N2KLQ": "04",
"N3WWE": "04",
"N8MQ": "04",
@ -58019,6 +58057,7 @@
"KL2XF": "05",
"KL3PP": "05",
"KL3SP": "05",
"KL4FZ": "05",
"KL4KW": "05",
"KL4QG": "05",
"KL6RG": "05",
@ -58291,7 +58330,6 @@
"K4WEM": "05",
"K4XS": "05",
"K4YT/M": "05",
"K4Z": "05",
"K4Z/ANT": "05",
"K6CEE": "05",
"K6CH": "05",
@ -58300,6 +58338,7 @@
"K6YU": "05",
"K7DOE": "05",
"K7LD": "05",
"K9DUG": "05",
"K9UBS": "05",
"KA1UIK": "05",
"KA3JFE": "05",
@ -58395,6 +58434,7 @@
"KH2GUM/P": "05",
"KH2HB": "05",
"KH2KD": "05",
"KH2MV": "05",
"KH2NC": "05",
"KH2PM": "05",
"KH2RL": "05",
@ -58756,7 +58796,6 @@
"N1CNQ": "05",
"N1MXB": "05",
"N1SHV": "05",
"N1TV": "05",
"N1VCW": "05",
"N3JAB": "05",
"N3JUW": "05",
@ -59012,6 +59051,7 @@
"WH6DXT": "05",
"WH6DYV": "05",
"WH6DZ": "05",
"WH6EAI": "05",
"WH6ECQ": "05",
"WH6EFI": "05",
"WH6EFX": "05",
@ -59286,6 +59326,7 @@
"WP4ZW": "05",
"WV4M": "05",
"AA6MS": "04",
"AC5D": "04",
"AC7AB": "04",
"AD5S": "04",
"AD5XX": "04",
@ -59358,6 +59399,7 @@
"K5YV": "04",
"K7CLC": "04",
"K8YUM": "04",
"KA5NUL": "04",
"KA5UCH": "04",
"KA5WMF": "04",
"KB0JN": "04",
@ -59513,7 +59555,6 @@
"KL3ST": "04",
"KL3TB": "04",
"KL4JQ": "04",
"KL4LJ": "04",
"KL4LS": "04",
"KL4OG": "04",
"KL4QZ": "04",
@ -59681,6 +59722,7 @@
"NL7K/5": "04",
"NL7KB": "04",
"NL7LE": "04",
"NL7LJ": "04",
"NL7NP": "04",
"NL7OM": "04",
"NL7PD": "04",
@ -60759,7 +60801,7 @@
"KH2GG": "03",
"KH2GN": "03",
"KH2JA": "03",
"KH2MV": "03",
"KH2KH": "03",
"KH2QH": "03",
"KH2RK": "03",
"KH2SK": "03",
@ -61536,6 +61578,7 @@
"WH2ACV": "03",
"WH2AJF": "03",
"WH2T": "03",
"WH2US": "03",
"WH6ANB": "03",
"WH6ARU": "03",
"WH6ASB": "03",
@ -61794,6 +61837,7 @@
"K8JED": "04",
"K8K": "04",
"K8O": "04",
"K8R": "04",
"K8T": "04",
"K8ZZ/M": "04",
"K9ROO": "04",
@ -61927,6 +61971,7 @@
"AE3TT": "04",
"AH6DA": "04",
"AH6EZ/9": "04",
"AH6K": "04",
"AH6OM": "04",
"AH6PA": "04",
"AH6YL": "04",
@ -62014,6 +62059,7 @@
"KP3VA/M": "04",
"KP4CH": "04",
"KP4CI": "04",
"KP4CTO": "04",
"KP4GE/9": "04",
"KP4JEL": "04",
"KP4NKE": "04",
@ -62665,6 +62711,7 @@
"GB0BVL",
"GB0BYL",
"GB0CAC",
"GB0CAS",
"GB0CBC",
"GB0CCE",
"GB0CEW",
@ -62681,6 +62728,7 @@
"GB0DMT",
"GB0DS",
"GB0DVP",
"GB0ESM",
"GB0EUL",
"GB0FHD",
"GB0FHI",
@ -62814,6 +62862,7 @@
"GB1SL",
"GB1SOM",
"GB1SPN",
"GB1SSB",
"GB1SSL",
"GB1STC",
"GB1STM",
@ -62951,6 +63000,7 @@
"GB4SSP",
"GB4SUB",
"GB4TMS",
"GB4TRS",
"GB4UKG",
"GB4WT",
"GB4WWI",

Wyświetl plik

@ -73,7 +73,7 @@
ITU Zones
</button>
<button id="waswacbox" class="infoTablinks" onclick="openInfoTab(event, 'waswaczoneBoxDiv', 'showWASWACzoneBox')">
WAC / WAS / WACP
WAC / WAS / WACP / US48
</button>
<button id="wpxbox" class="infoTablinks" onclick="openInfoTab(event, 'wpxBoxDiv', 'showWPXBox')">WPX</button>
<button id="calbox" class="infoTablinks" onclick="openInfoTab(event, 'callsignBoxDiv', 'showCallsignBox')">

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 8.2 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 9.2 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 8.6 KiB

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 7.3 KiB

Wyświetl plik

@ -108,6 +108,8 @@ var def_mapSettings = {
animate: true,
animateSpeed: 4,
CQhilite: true,
predMode: 0,
predOpacity: 0.4,
fitQRZ: false,
focusRig: true,
gridAlpha: 136,

Wyświetl plik

@ -625,6 +625,11 @@ GT.spotImageArray[2] = "./img/heat.png";
GT.maidenheadModeImageArray = Array();
GT.maidenheadModeImageArray[0] = "./img/mh4_32.png";
GT.maidenheadModeImageArray[1] = "./img/mh6_32.png";
GT.predImageArray = Array();
GT.predImageArray[0] = "./img/no-pred.png";
GT.predImageArray[1] = "./img/muf.png";
GT.predImageArray[2] = "./img/fof2.png";
GT.predImageArray[3] = "./img/epi.png";
GT.gridViewArray = Array();
GT.gridViewArray[1] = "Live";
@ -852,6 +857,7 @@ function toggleOffline()
setGtShareButtons();
}
displayNexrad();
displayPredLayer();
loadMapSettings();
changeMapValues();
goProcessRoster();
@ -4370,6 +4376,7 @@ function initMap()
}
for (const key in GT.maps)
{
GT.maps[key].attributions = "&copy; <a href='https://gridtracker.org' target='_blank'>GridTracker</a> " + GT.maps[key].attributions;
GT.mapsLayer[key] = new ol.source.XYZ(GT.maps[key]);
var option = document.createElement("option");
option.value = key;
@ -4414,7 +4421,8 @@ function initMap()
GT.mapControl = [
GT.scaleLine,
new ol.control.Zoom(),
new ol.control.FullScreen({ source: "mainBody" })
new ol.control.FullScreen({ source: "mainBody" }),
new ol.control.Attribution({ collapsible: false, collapsed: false })
];
createGlobalMapLayer("award");
@ -4435,7 +4443,6 @@ function initMap()
createGlobalMapLayer("gtflags");
createGlobalMapLayer("temp");
createGlobalMapLayer("tz");
createGlobalMapLayer("radar");
GT.mapView = new ol.View({
center: [GT.myLon, GT.myLat],
@ -4465,8 +4472,8 @@ function initMap()
GT.layerVectors.transmit,
GT.layerVectors.gtflags,
GT.layerVectors.temp,
GT.layerVectors.tz,
GT.layerVectors.radar
GT.layerVectors.tz
],
interactions: ol.interaction.defaults({
dragPan: false,
@ -4676,6 +4683,7 @@ function createNexRad()
{
var layerSource = new ol.source.TileWMS({
url: "http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0q.cgi",
attributions: "<a href='https://mesonet.agron.iastate.edu/docs/nexrad_mosaic/' target='_blank'>IEM@ISU</a>",
params: { LAYERS: "nexrad-n0q" }
});
@ -7628,6 +7636,10 @@ function showWASWACzoneBox()
worker += displayItemList(GT.wacpZones, "#FFA500");
worker += "</div>";
worker += "<div style='vertical-align:top;display:inline-block;margin-right:8px;overflow:auto;overflow-x:hidden;color:cyan;'><b>" + $.i18n("gt.viewInfo.us48Data") + "</b><br/>";
worker += displayItemList(GT.us48Data, "#DDDD00");
worker += "</div>";
setStatsDiv("waswacListDiv", worker);
}
@ -7676,7 +7688,15 @@ function displayItemList(table, color)
.forEach(function (key, i)
{
var style;
var name = typeof table[key].name !== "undefined" ? key + " / " + table[key].name : key;
var name;
if (typeof table[key].name !== "undefined" && table[key].name != key)
{
name = key + " / " + table[key].name;
}
else
{
name = key;
}
if (table[key].confirmed == true)
{
style = "color:" + color + ";" + confirmed;
@ -7700,6 +7720,7 @@ function displayItemList(table, color)
function showWPXBox()
{
var worker = getCurrentBandModeHTML();
var band = GT.appSettings.gtBandFilter == "auto" ? GT.appSettings.myBand : GT.appSettings.gtBandFilter.length == 0 ? "" : GT.appSettings.gtBandFilter;
var mode = GT.appSettings.gtModeFilter == "auto" ? GT.appSettings.myMode : GT.appSettings.gtModeFilter.length == 0 ? "" : GT.appSettings.gtModeFilter;
@ -11467,6 +11488,8 @@ function loadMapSettings()
timezoneImg.style.filter = GT.mapSettings.timezonesEnable == 1 ? "" : "grayscale(1)";
radarImg.style.filter = GT.mapSettings.usNexrad ? "" : "grayscale(1)";
predImg.src = GT.predImageArray[GT.mapSettings.predMode];
predImg.style.filter = GT.mapSettings.predMode > 0 ? "" : "grayscale(1)";
gridOverlayImg.style.filter = GT.mapSettings.showAllGrids ? "" : "grayscale(1)";
GT.bandToColor = JSON.parse(JSON.stringify(GT.pskColors));
@ -12240,6 +12263,8 @@ function postInit()
addLastTraffic("GridTracker</br>" + gtShortVersion);
displayNexrad();
predInit();
displayPredLayer();
displayTimezones();
if (String(gtVersion) != String(GT.startVersion))
@ -15156,4 +15181,159 @@ function refreshSpotsNoTx()
redrawSpots();
}
GT.PredLayer = null;
GT.predLayerTimeout = null;
GT.epiTimeValue = 0;
function changePredOpacityValue()
{
predOpacityTd.innerHTML = GT.mapSettings.predOpacity = predOpacityValue.value;
predLayerRefreh();
}
function changeEpiTimeValue()
{
GT.epiTimeValue = epiTimeValue.value;
epiTimeOffsetTd.innerHTML = ((GT.epiTimeValue > 0) ? "+" + GT.epiTimeValue : GT.epiTimeValue) + "h";
predLayerRefreh();
}
function getCurrentPredURL()
{
let where = "";
let now = timeNowSec();
let timeOut = 900 * 1000;
if (GT.mapSettings.predMode < 3)
{
where = GT.mapSettings.predMode == 1 ? "https://tagloomis.com/muf/img/muf.png?" : "https://tagloomis.com/muf/img/fof2.png?";
where += String(now - (now % 900));
}
else
{
timeOut = (3601 - (now % 3600)) * 1000;
now = now + (GT.epiTimeValue * 3600);
now = now - (now % 3600);
where = "https://tagloomis.com/epi/img/" + now + ".jpg";
epiTimeTd.innerHTML = "<font color='lightblue'>" + userTimeString(now * 1000) + "</font>";
}
if (GT.predLayerTimeout != null)
{
nodeTimers.clearTimeout(GT.predLayerTimeout);
GT.predLayerTimeout = null;
}
GT.predLayerTimeout = nodeTimers.setTimeout(predLayerRefreh, timeOut);
return where;
}
function createPredSource()
{
return new ol.source.XYZ({
url: getCurrentPredURL(),
attributions: GT.mapSettings.predMode != 3 ? "<a href='https://prop.kc2g.com/acknowledgments/' target='_blank' title='Visit prop.kc2g.com' class='roundBorder'>KC2G</a>" : "<a href='https://www.propquest.co.uk/about.php' target='_blank' title='Visit PROPquest.co.uk' class='roundBorder'>PROPquest</a>",
minZoom: 0,
maxZoom: 0
});
}
function createPredLayer()
{
var layerVector = new ol.layer.Tile({
source: createPredSource(),
opacity: Number(GT.mapSettings.predOpacity),
visible: true,
zIndex: 0
});
layerVector.set("name", "Pred");
return layerVector;
}
function cyclePredLayer()
{
GT.mapSettings.predMode = (GT.mapSettings.predMode + 1) % 4;
displayPredLayer();
saveMapSettings();
}
function predInit()
{
GT.predViews = Array();
GT.predViews[1] =
{
on: { mufTitle, mufBarTr, mufRangeTr },
off: { fof2Title, epiTitle, epiTimeTr, epiTimeOffsetTr, epiBarTr, epiRangeTr, fof2RangeTr }
};
GT.predViews[2] =
{
on: { fof2Title, mufBarTr, fof2RangeTr },
off: { mufTitle, epiTitle, epiTimeTr, epiTimeOffsetTr, epiBarTr, epiRangeTr, mufRangeTr }
};
GT.predViews[3] =
{
on: { epiTitle, epiTimeTr, epiTimeOffsetTr, epiBarTr, epiRangeTr },
off: { mufTitle, fof2Title, mufBarTr, mufRangeTr, fof2RangeTr }
};
}
function displayPredLayer()
{
if (GT.mapSettings.predMode > 0 && GT.mapSettings.offlineMode == false)
{
predDiv.style.display = "block";
predButton.style.display = "inline-block";
let view = GT.predViews[GT.mapSettings.predMode];
for (var item in view.on)
{
view.on[item].style.display = "";
}
for (var item in view.off)
{
view.off[item].style.display = "none";
}
if (GT.PredLayer == null)
{
GT.PredLayer = createPredLayer();
GT.map.addLayer(GT.PredLayer);
}
else
{
predLayerRefreh();
}
}
else
{
predDiv.style.display = "none";
if (GT.mapSettings.offlineMode == true)
{
predButton.style.display = "none";
}
if (GT.predLayerTimeout != null)
{
nodeTimers.clearTimeout(GT.predLayerTimeout);
GT.predLayerTimeout = null;
}
if (GT.PredLayer)
{
GT.map.removeLayer(GT.PredLayer);
GT.PredLayer = null;
}
}
predImg.src = GT.predImageArray[GT.mapSettings.predMode];
predImg.style.filter = GT.mapSettings.predMode > 0 ? "" : "grayscale(1)";
predOpacityTd.innerHTML = predOpacityValue.value = GT.mapSettings.predOpacity;
}
function predLayerRefreh()
{
if (GT.PredLayer != null && GT.mapSettings.offlineMode == false)
{
GT.PredLayer.setSource(createPredSource());
GT.PredLayer.setOpacity(Number(GT.mapSettings.predOpacity));
}
}
nodeTimers.setInterval(refreshSpotsNoTx, 300000);

Wyświetl plik

@ -126,7 +126,7 @@ html, body {
.legendDivStart {
position: absolute;
bottom: 2px;
bottom: 20px;
right: 2px;
width: 160px;
border: 1px solid orange;
@ -137,7 +137,7 @@ html, body {
.legendDivEnd {
position: absolute;
bottom: 2px;
bottom: 20px;
right: 203px;
width: 160px;
border: 1px solid orange;
@ -146,6 +146,11 @@ html, body {
-webkit-border-radius: 6px;
}
.barGraph {
border: 0px;
height: 8px;
}
.mouseTrack {
position: absolute;
top: 8px;

Wyświetl plik

@ -1,7 +1,7 @@
{
"name": "GridTracker",
"product_string_do_not_use": "gridtracker",
"version": "1.24.0801",
"version": "1.24.0811",
"betaVersion": "",
"description": "GridTracker: An Amateur Radio Companion",
"author": "GridTracker.org",