mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 02:14:01 +00:00
Merge pull request #1452 from Rohilalala/fix/e-transit-heading-north
fix(transit): show a reported 359.6° bearing as hdg 0°, not hdg 360°
This commit is contained in:
4 files changed
+22
-2
No files matched your search
@@ -0,0 +1,3 @@
|
|||||||
|
- Show a transit vehicle's reported bearing of 359.5° or more as 0°. The
|
||||||
|
selected-vehicle card rounded it without wrapping, so a bus heading 359.6°
|
||||||
|
read "reported hdg 360°" (Aditya, @Rohilalala, #1452).
|
||||||
@@ -4488,7 +4488,9 @@ to 0.45 at two minutes, 0.20 at ten minutes and 0.08 at fifteen minutes.
|
|||||||
display delay and newest-report age, reported speed/stop, vehicle ID, and
|
display delay and newest-report age, reported speed/stop, vehicle ID, and
|
||||||
available trail duration. Report age is rounded to whole seconds and stays in seconds while that rounded
|
available trail duration. Report age is rounded to whole seconds and stays in seconds while that rounded
|
||||||
count is below 90; otherwise it shows completed minutes calculated from the
|
count is below 90; otherwise it shows completed minutes calculated from the
|
||||||
rounded second count. Its anchor follows the rendered marker; text is
|
rounded second count. The reported heading wraps after rounding to whole
|
||||||
|
degrees, so a bearing of 359.5° or more reads `hdg 0°` rather than `hdg 360°`.
|
||||||
|
Its anchor follows the rendered marker; text is
|
||||||
checked at 4 Hz and published when it changes. DETECT labels retain route,
|
checked at 4 Hz and published when it changes. DETECT labels retain route,
|
||||||
mode and motion, with the selected label suppressed beside its fuller card.
|
mode and motion, with the selected label suppressed beside its fuller card.
|
||||||
Candidate membership changes on revisions, coalesced at 4 Hz; paints read
|
Candidate membership changes on revisions, coalesced at 4 Hz; paints read
|
||||||
|
|||||||
@@ -405,9 +405,12 @@ export function buildTransitSelectionCopy(
|
|||||||
reportedMotion.push(
|
reportedMotion.push(
|
||||||
t('reported {speed} km/h', { speed: Math.round(record.speedMps * 3.6) }),
|
t('reported {speed} km/h', { speed: Math.round(record.speedMps * 3.6) }),
|
||||||
);
|
);
|
||||||
|
// 359.5° and above rounds to north; modulo keeps it from printing 360°.
|
||||||
if (Number.isFinite(record.bearing))
|
if (Number.isFinite(record.bearing))
|
||||||
reportedMotion.push(
|
reportedMotion.push(
|
||||||
t('reported hdg {heading}°', { heading: Math.round(record.bearing) }),
|
t('reported hdg {heading}°', {
|
||||||
|
heading: Math.round(record.bearing) % 360,
|
||||||
|
}),
|
||||||
);
|
);
|
||||||
// The operator's own claim, kept as a REPORT rather than as the live state.
|
// The operator's own claim, kept as a REPORT rather than as the live state.
|
||||||
// It describes the moment of the report, which the display may not have
|
// It describes the moment of the report, which the display may not have
|
||||||
|
|||||||
@@ -43,6 +43,18 @@ test('the selection card calls a Toronto 501 a streetcar', () => {
|
|||||||
assert.doesNotMatch(copy.details.join(' | '), /Tram/);
|
assert.doesNotMatch(copy.details.join(' | '), /Tram/);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('the selection card reads a bearing that rounds to north as hdg 0°', () => {
|
||||||
|
const hdg = (bearing) =>
|
||||||
|
buildTransitSelectionCopy(
|
||||||
|
ttc(),
|
||||||
|
{ id: '4400', routeId: '501', timestamp: 0, bearing },
|
||||||
|
'tram',
|
||||||
|
0,
|
||||||
|
).details.find((line) => line.includes('hdg'));
|
||||||
|
assert.equal(hdg(359.4), 'reported hdg 359°');
|
||||||
|
assert.equal(hdg(359.6), 'reported hdg 0°');
|
||||||
|
});
|
||||||
|
|
||||||
test('detection labels carry the operator vocabulary within the field width', () => {
|
test('detection labels carry the operator vocabulary within the field width', () => {
|
||||||
const klass = transitDetectionClass('tram', ttc());
|
const klass = transitDetectionClass('tram', ttc());
|
||||||
assert.equal(klass, 'STREETCAR TTC');
|
assert.equal(klass, 'STREETCAR TTC');
|
||||||
|
|||||||
Reference in new issue
Block a user