mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 19:04:02 +00:00
fix(awareness): show a 999.6 m contact marker as 1.0 km, not 1000 m
The on-globe Contacts markers picked metres before rounding, so a contact 999.5 m or more away read "1000 m" while the Contacts panel read "1.0 km". The marker label now rounds first, as the panel does.
This commit is contained in:
1 parent
15de9d738c
commit
83c4388e64
3 files changed
+13
-4
No files matched your search
@@ -4461,8 +4461,9 @@ silent for five minutes are removed. Credits appear when the feed is used.
|
|||||||
coordinator, but it is not a user-visible Data Layers entry. Its visible entry
|
coordinator, but it is not a user-visible Data Layers entry. Its visible entry
|
||||||
point is the right-side `CONTEXT` chooser's `CONTACTS` mode.
|
point is the right-side `CONTEXT` chooser's `CONTACTS` mode.
|
||||||
|
|
||||||
Contacts distance labels select metres or kilometres after rounding to the
|
Contacts distance labels, in the panel and on the globe's contact markers,
|
||||||
nearest metre, so a 999.5-metre contact displays as `1.0 km`, not `1000 m`.
|
select metres or kilometres after rounding to the nearest metre, so a
|
||||||
|
999.5-metre contact displays as `1.0 km`, not `1000 m`.
|
||||||
|
|
||||||
At global scale, ambient Radio cluster badges are hard-opacity shared-host
|
At global scale, ambient Radio cluster badges are hard-opacity shared-host
|
||||||
entries: count/category updates and identity replacement do not run keyhole or
|
entries: count/category updates and identity replacement do not run keyhole or
|
||||||
|
|||||||
@@ -47,8 +47,10 @@ export function findByDoublingRadius(
|
|||||||
/** @param {number} meters @returns {string} */
|
/** @param {number} meters @returns {string} */
|
||||||
export function formatAwarenessDistance(meters) {
|
export function formatAwarenessDistance(meters) {
|
||||||
if (!Number.isFinite(meters) || meters < 0) return '—';
|
if (!Number.isFinite(meters) || meters < 0) return '—';
|
||||||
return meters < 1000
|
// Round before the kilometre cut. 999.6 m was printed as "1000 m".
|
||||||
? `${Math.round(meters)} m`
|
const wholeMeters = Math.round(meters);
|
||||||
|
return wholeMeters < 1000
|
||||||
|
? `${wholeMeters} m`
|
||||||
: `${(meters / 1000).toFixed(meters < 10000 ? 1 : 0)} km`;
|
: `${(meters / 1000).toFixed(meters < 10000 ? 1 : 0)} km`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,12 @@ test('awareness formatters preserve valid zeroes and replace missing or invalid
|
|||||||
assert.equal(formatAwarenessLabel(undefined), '—');
|
assert.equal(formatAwarenessLabel(undefined), '—');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('a contact marker moves a distance that rounds to 1,000 m into kilometres', () => {
|
||||||
|
assert.equal(formatAwarenessDistance(999.4), '999 m');
|
||||||
|
assert.equal(formatAwarenessDistance(999.6), '1.0 km');
|
||||||
|
assert.equal(formatAwarenessDistance(4600), '4.6 km');
|
||||||
|
});
|
||||||
|
|
||||||
test('awareness cohorts sort nearest-first and do not turn empty data into out of range', () => {
|
test('awareness cohorts sort nearest-first and do not turn empty data into out of range', () => {
|
||||||
const result = summarizeAwarenessCohort([{ id: 'far', distance: 9000 }, { id: 'near', distanceM: 1000 }]);
|
const result = summarizeAwarenessCohort([{ id: 'far', distance: 9000 }, { id: 'near', distanceM: 1000 }]);
|
||||||
assert.equal(result.relationship, 'NEARBY');
|
assert.equal(result.relationship, 'NEARBY');
|
||||||
|
|||||||
Reference in new issue
Block a user