Skip to content

Commit 36c3b58

Browse files
committed
v0.24 Beta Test
Introducing localizer, glide slope, and marker beacons. Along with various optimizations.
1 parent 6d1ee88 commit 36c3b58

File tree

8 files changed

+666
-169
lines changed

8 files changed

+666
-169
lines changed
41.5 KB
Binary file not shown.

PROJECT/GPS-PFD/index.html

Lines changed: 91 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<link rel="icon" type="image/png" href="images/Icon_Small.png" />
1111
<title>GPS-PFD</title>
1212
<meta name="author" content="SAM TOKI STUDIO" />
13-
<meta name="version" content="v0.23 (2025/03/22) Beta Test. Since 2024/12/01." />
13+
<meta name="version" content="v0.24 (2025/04/10) Beta Test. Since 2024/12/01." />
1414
<meta name="description" content="利用 GPS 与加速计,在移动设备上模拟飞机驾驶舱的 PFD。" />
1515
<meta name="copyright" content="© 2025 SAM TOKI STUDIO" />
1616

@@ -1129,7 +1129,7 @@ <h1 class="SectionTitle Hidden" inert="true">PFD</h1>
11291129
<li class="Ctrl" id="Ctrl_PFDDefaultPanelHeadingBalloon">
11301130
<ul class="CtrlGroup">
11311131
<li class="Ctrl Balloon" title="当前朝向" aria-label="当前朝向">
1132-
<span id="Label_PFDDefaultPanelHeadingBalloon">朝向</span>
1132+
<span id="Label_PFDDefaultPanelHeadingBalloon"><span class="SmallerText">朝向</span></span>
11331133
</li>
11341134
<li class="Ctrl BalloonTail" title="当前朝向" aria-label="当前朝向"></li>
11351135
</ul>
@@ -1139,33 +1139,52 @@ <h1 class="SectionTitle Hidden" inert="true">PFD</h1>
11391139
<div class="Ctnr Faded" id="Ctnr_PFDDefaultPanelDME" inert="true">
11401140
<span id="Label_PFDDefaultPanelDMETitle">测距仪</span>
11411141
<span id="Label_PFDDefaultPanelDMEDistance">距离</span>
1142-
<span id="Label_PFDDefaultPanelDMEETA">预计剩余时间</span>
1142+
<span id="Label_PFDDefaultPanelDMEETA"><span class="SmallerText">预计剩余时间</span></span>
11431143
</div>
1144-
<div class="Ctnr" id="Ctnr_PFDDefaultPanelRadioAltitude">
1144+
<div class="Ctnr Faded" id="Ctnr_PFDDefaultPanelLocalizer" inert="true" title="航向台" aria-label="航向台">
1145+
<div id="PFDDefaultPanelLocalizerPointer" title="航向台指针" aria-label="航向台指针"></div>
11451146
<ul class="CtrlGroup">
1146-
<li class="Ctrl" title="无线电高度表" aria-label="无线电高度表">
1147-
<ul class="CtrlGroup" id="CtrlGroup_PFDDefaultPanelRadioAltitudeDialScale">
1148-
<li class="Ctrl"><div class="DialScale"></div></li>
1149-
<li class="Ctrl" style="transform: rotate(36deg);"><div class="DialScale"></div></li>
1150-
<li class="Ctrl" style="transform: rotate(72deg);"><div class="DialScale"></div></li>
1151-
<li class="Ctrl" style="transform: rotate(108deg);"><div class="DialScale"></div></li>
1152-
<li class="Ctrl" style="transform: rotate(144deg);"><div class="DialScale"></div></li>
1153-
<li class="Ctrl" style="transform: rotate(180deg);"><div class="DialScale"></div></li>
1154-
<li class="Ctrl" style="transform: rotate(216deg);"><div class="DialScale"></div></li>
1155-
<li class="Ctrl" style="transform: rotate(252deg);"><div class="DialScale"></div></li>
1156-
<li class="Ctrl" style="transform: rotate(288deg);"><div class="DialScale"></div></li>
1157-
<li class="Ctrl" style="transform: rotate(324deg);"><div class="DialScale"></div></li>
1158-
</ul>
1159-
<svg class="Progring" id="Progring_PFDDefaultPanelRadioAltitude" viewBox="0 0 85 85" aria-hidden="true">
1160-
<circle class="ProgringFg" id="ProgringFg_PFDDefaultPanelRadioAltitude" cx="42.5" cy="42.5" r="41" />
1161-
</svg>
1162-
<span class="ProgringText" id="ProgringText_PFDDefaultPanelRadioAltitude">
1163-
<span class="SmallerText">无线电<br />
1164-
高度</span>
1165-
</span>
1166-
</li>
1147+
<li class="Ctrl ILSCircle"></li>
1148+
<li class="Ctrl ILSCircle"></li>
1149+
<li class="Ctrl ILSLine"><div></div></li>
1150+
<li class="Ctrl ILSCircle"></li>
1151+
<li class="Ctrl ILSCircle"></li>
1152+
</ul>
1153+
</div>
1154+
<div class="Ctnr Faded" id="Ctnr_PFDDefaultPanelGlideSlope" inert="true" title="下滑道" aria-label="下滑道">
1155+
<div id="PFDDefaultPanelGlideSlopePointer" title="下滑道指针" aria-label="下滑道指针"></div>
1156+
<ul class="CtrlGroup">
1157+
<li class="Ctrl ILSCircle"></li>
1158+
<li class="Ctrl ILSCircle"></li>
1159+
<li class="Ctrl ILSLine"><div></div></li>
1160+
<li class="Ctrl ILSCircle"></li>
1161+
<li class="Ctrl ILSCircle"></li>
11671162
</ul>
11681163
</div>
1164+
<div class="Ctnr Faded" id="Ctnr_PFDDefaultPanelMarkerBeacon" inert="true" title="指点标" aria-label="指点标">
1165+
<span id="Label_PFDDefaultPanelMarkerBeacon"></span>
1166+
</div>
1167+
<div class="Ctnr" id="Ctnr_PFDDefaultPanelRadioAltitude" title="无线电高度表" aria-label="无线电高度表">
1168+
<ul class="CtrlGroup" id="CtrlGroup_PFDDefaultPanelRadioAltitudeDialScale">
1169+
<li class="Ctrl"><div class="DialScale"></div></li>
1170+
<li class="Ctrl" style="transform: rotate(36deg);"><div class="DialScale"></div></li>
1171+
<li class="Ctrl" style="transform: rotate(72deg);"><div class="DialScale"></div></li>
1172+
<li class="Ctrl" style="transform: rotate(108deg);"><div class="DialScale"></div></li>
1173+
<li class="Ctrl" style="transform: rotate(144deg);"><div class="DialScale"></div></li>
1174+
<li class="Ctrl" style="transform: rotate(180deg);"><div class="DialScale"></div></li>
1175+
<li class="Ctrl" style="transform: rotate(216deg);"><div class="DialScale"></div></li>
1176+
<li class="Ctrl" style="transform: rotate(252deg);"><div class="DialScale"></div></li>
1177+
<li class="Ctrl" style="transform: rotate(288deg);"><div class="DialScale"></div></li>
1178+
<li class="Ctrl" style="transform: rotate(324deg);"><div class="DialScale"></div></li>
1179+
</ul>
1180+
<svg class="Progring" id="Progring_PFDDefaultPanelRadioAltitude" viewBox="0 0 85 85" aria-hidden="true">
1181+
<circle class="ProgringFg" id="ProgringFg_PFDDefaultPanelRadioAltitude" cx="42.5" cy="42.5" r="41" />
1182+
</svg>
1183+
<span class="ProgringText" id="ProgringText_PFDDefaultPanelRadioAltitude">
1184+
<span class="SmallerText">无线电<br />
1185+
高度</span>
1186+
</span>
1187+
</div>
11691188
<div class="Ctnr Faded" id="Ctnr_PFDDefaultPanelDecisionAltitude">
11701189
<span id="Label_PFDDefaultPanelDecisionAltitudeTitle">决断高度</span>
11711190
<span id="Label_PFDDefaultPanelDecisionAltitudeValue">未知</span>
@@ -1365,9 +1384,9 @@ <h3>选项</h3>
13651384
</label>
13661385
</li>
13671386
<li class="Ctrl">
1368-
<label for="Checkbox_PFDOptionsEnableDME">
1369-
<input class="Checkbox" id="Checkbox_PFDOptionsEnableDME" type="checkbox" checked="false" onchange="SetEnableDMEAtPFDOptions()" />
1370-
<span>启用测距仪</span>
1387+
<label for="Checkbox_PFDOptionsEnableNav">
1388+
<input class="Checkbox" id="Checkbox_PFDOptionsEnableNav" type="checkbox" checked="true" onchange="SetEnableNavAtPFDOptions()" />
1389+
<span>启用导航</span>
13711390
</label>
13721391
</li>
13731392
<li class="Ctrl">
@@ -1630,21 +1649,21 @@ <h4>限速</h4>
16301649
<li class="Ctrl">
16311650
<label for="Textbox_SettingsSpeedLimitMin">
16321651
<span>最小表速:</span>
1633-
<input class="Textbox Width120" id="Textbox_SettingsSpeedLimitMin" type="number" min="0" max="530" step="5" value="0" onclick="SelectText('Textbox_SettingsSpeedLimitMin')" onchange="SetSpeedLimitMin()" placeholder="0~530" title="0~530" />
1652+
<input class="Textbox Width120" id="Textbox_SettingsSpeedLimitMin" type="number" min="0" max="529" step="5" value="0" onclick="SelectText('Textbox_SettingsSpeedLimitMin')" onchange="SetSpeedLimitMin()" placeholder="0~529" title="0~529" />
16341653
<span id="Label_SettingsSpeedLimitMinUnit"></span>
16351654
</label>
16361655
</li>
16371656
<li class="Ctrl">
16381657
<label for="Textbox_SettingsSpeedLimitMaxOnFlapsUp">
16391658
<span><a href="https://zh.wikipedia.org/wiki/襟翼">襟翼</a>收起时最大表速:</span>
1640-
<input class="Textbox Width120" id="Textbox_SettingsSpeedLimitMaxOnFlapsUp" type="number" min="10" max="539" step="5" value="539" onclick="SelectText('Textbox_SettingsSpeedLimitMaxOnFlapsUp')" onchange="SetSpeedLimitMaxOnFlapsUp()" placeholder="10~539" title="10~539" />
1659+
<input class="Textbox Width120" id="Textbox_SettingsSpeedLimitMaxOnFlapsUp" type="number" min="10" max="539" step="5" value="539" onclick="SelectText('Textbox_SettingsSpeedLimitMaxOnFlapsUp')" onchange="SetSpeedLimitMaxOnFlapsUp()" placeholder="11~539" title="11~539" />
16411660
<span id="Label_SettingsSpeedLimitOnFlapsUpUnit"></span>
16421661
</label>
16431662
</li>
16441663
<li class="Ctrl">
16451664
<label for="Textbox_SettingsSpeedLimitMaxOnFlapsFull">
16461665
<span>襟翼全开时最大表速:</span>
1647-
<input class="Textbox Width120" id="Textbox_SettingsSpeedLimitMaxOnFlapsFull" type="number" min="10" max="539" step="5" value="539" onclick="SelectText('Textbox_SettingsSpeedLimitMaxOnFlapsFull')" onchange="SetSpeedLimitMaxOnFlapsFull()" placeholder="10~539" title="10~539" />
1666+
<input class="Textbox Width120" id="Textbox_SettingsSpeedLimitMaxOnFlapsFull" type="number" min="10" max="539" step="5" value="539" onclick="SelectText('Textbox_SettingsSpeedLimitMaxOnFlapsFull')" onchange="SetSpeedLimitMaxOnFlapsFull()" placeholder="11~539" title="11~539" />
16481667
<span id="Label_SettingsSpeedLimitOnFlapsFullUnit"></span>
16491668
</label>
16501669
</li>
@@ -1710,15 +1729,15 @@ <h4>限速</h4>
17101729
</ul>
17111730
</fieldset>
17121731
</li>
1713-
<li class="Item" id="Item_SettingsDME">
1732+
<li class="Item" id="Item_SettingsNav">
17141733
<fieldset>
1715-
<legend>测距仪</legend>
1716-
<p><a href="https://zh.wikipedia.org/wiki/测距仪">测距仪 (DME) </a>测量您与机场之间的水平距离,在朝向指示器上提供导航朝向 (bearing),并加强<a href="https://zh.wikipedia.org/wiki/近地警告系统">近地警告系统 (GPWS) </a>的功能</p>
1734+
<legend>导航</legend>
1735+
<p>导航功能参考自<a href="https://zh.wikipedia.org/wiki/仪表着陆系统">仪表着陆系统 (ILS)</a>。包括<a href="https://zh.wikipedia.org/wiki/测距仪">测距仪 (DME) </a>、导航朝向 (bearing)、航向台 (localizer)、下滑道 (glide slope) 以及指点标 (marker beacons)。测距仪测量您与机场之间的水平距离,预测到达机场前的剩余时间。下滑道使<a href="https://zh.wikipedia.org/wiki/近地警告系统">近地警告系统 (GPWS) </a>的下滑道警告功能可用。航向台与下滑道仅在飞航模式为「降落」时显示</p>
17171736
<ul class="CtrlGroup BelowParagraph">
17181737
<li class="Ctrl">
1719-
<label for="Checkbox_SettingsEnableDME">
1720-
<input class="Checkbox" id="Checkbox_SettingsEnableDME" type="checkbox" checked="false" onchange="SetEnableDME()" />
1721-
<span>启用测距仪</span>
1738+
<label for="Checkbox_SettingsEnableNav">
1739+
<input class="Checkbox" id="Checkbox_SettingsEnableNav" type="checkbox" checked="false" onchange="SetEnableNav()" />
1740+
<span>启用导航</span>
17221741
</label>
17231742
</li>
17241743
</ul>
@@ -1760,6 +1779,40 @@ <h4 class="Hidden" id="Label_SettingsETA" inert="true">预计剩余时间 (ETA)<
17601779
</select>
17611780
</label>
17621781
</li>
1782+
</ul>
1783+
<h4 class="Hidden" id="Label_SettingsGlideSlope" inert="true">下滑道</h4>
1784+
<ul class="CtrlGroup BelowParagraph">
1785+
<li class="Ctrl Hidden" id="Ctrl_SettingsGlideSlopeAngle" inert="true">
1786+
<label for="Textbox_SettingsGlideSlopeAngle">
1787+
<span>下滑道角度:</span>
1788+
<input class="Textbox Width120" id="Textbox_SettingsGlideSlopeAngle" type="number" min="0" max="5" step="0.1" value="3.0" onclick="SelectText('Textbox_SettingsGlideSlopeAngle')" onchange="SetGlideSlopeAngle()" placeholder="0~5" title="0~5" />
1789+
<span></span>
1790+
</label>
1791+
</li>
1792+
</ul>
1793+
<h4 class="Hidden" id="Label_SettingsMarkerBeacons" inert="true">指点标</h4>
1794+
<ul class="CtrlGroup BelowParagraph">
1795+
<li class="Ctrl Hidden" id="Ctrl_SettingsOuterMarkerDistance" inert="true">
1796+
<label for="Textbox_SettingsOuterMarkerDistance">
1797+
<span>外指点标距离:</span>
1798+
<input class="Textbox Width120" id="Textbox_SettingsOuterMarkerDistance" type="number" min="0" max="8.1" step="0.1" value="5.00" onclick="SelectText('Textbox_SettingsOuterMarkerDistance')" onchange="SetOuterMarkerDistance()" placeholder="0~8.1" title="0~8.1" />
1799+
<span id="Label_SettingsOuterMarkerDistanceUnit">海里</span>
1800+
</label>
1801+
</li>
1802+
<li class="Ctrl Hidden" id="Ctrl_SettingsMiddleMarkerDistance" inert="true">
1803+
<label for="Textbox_SettingsMiddleMarkerDistance">
1804+
<span>中指点标距离:</span>
1805+
<input class="Textbox Width120" id="Textbox_SettingsMiddleMarkerDistance" type="number" min="0" max="8.1" step="0.1" value="0.50" onclick="SelectText('Textbox_SettingsMiddleMarkerDistance')" onchange="SetMiddleMarkerDistance()" placeholder="0~8.1" title="0~8.1" />
1806+
<span id="Label_SettingsMiddleMarkerDistanceUnit">海里</span>
1807+
</label>
1808+
</li>
1809+
<li class="Ctrl Hidden" id="Ctrl_SettingsInnerMarkerDistance" inert="true">
1810+
<label for="Textbox_SettingsInnerMarkerDistance">
1811+
<span>内指点标距离:</span>
1812+
<input class="Textbox Width120" id="Textbox_SettingsInnerMarkerDistance" type="number" min="0" max="8.1" step="0.1" value="0.10" onclick="SelectText('Textbox_SettingsInnerMarkerDistance')" onchange="SetInnerMarkerDistance()" placeholder="0~8.1" title="0~8.1" />
1813+
<span id="Label_SettingsInnerMarkerDistanceUnit">海里</span>
1814+
</label>
1815+
</li>
17631816
<li class="Ctrl Hidden"></li> <!-- Placeholder for the wider fieldset UI. -->
17641817
<li class="Ctrl Hidden" id="Ctrl_SettingsSwitchDistanceUnit" inert="true">
17651818
<a class="Button" href="#Item_SettingsI18n" onclick="ShowIAmHere('Item_SettingsI18n')">切换距离单位...</a>
@@ -2185,7 +2238,7 @@ <h4>音频</h4>
21852238
<legend>关于</legend>
21862239
<p>GPS-PFD</p>
21872240
<p>by SAM TOKI STUDIO</p>
2188-
<p>版本 v0.23 (<time datetime="2025-03-22" pubdate="pubdate">2025/03/22</time>) Beta Test<br />
2241+
<p>版本 v0.24 (<time datetime="2025-04-10" pubdate="pubdate">2025/04/10</time>) Beta Test<br />
21892242
始于 2024/12/01</p>
21902243
<p class="GreenText Hidden" id="Label_HelpPWANewVersionReady" inert="true">新版本已就绪,将在下次启动时生效。</p>
21912244
<ul class="CtrlGroup BelowParagraph">

PROJECT/GPS-PFD/script_ServiceWorker.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// Declare variables
77
"use strict";
88
// Unsaved
9-
const CacheName = "GPS-PFD_v0.23";
9+
const CacheName = "GPS-PFD_v0.24";
1010

1111
// Listeners
1212
// Service worker (https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps-chromium/how-to/#step-5---add-a-service-worker)

0 commit comments

Comments
 (0)