v2.26.11: fix APRS map ignoring configured observer position (#193)

The APRS map initialisation only checked for a live GPS fix, falling
back to the centre of the US (39.8N, 98.6W) when none was available.
It never read the observer position configured in .env via
INTERCEPT_DEFAULT_LAT / INTERCEPT_DEFAULT_LON.

Seed aprsUserLocation from ObserverLocation.getShared() (or the
Jinja-injected defaults) on page load so the map centres on the
user's configured position and distance calculations work without GPS.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Smittix
2026-03-14 18:17:50 +00:00
parent 8adfb3a40a
commit 7ed039564b
4 changed files with 32 additions and 5 deletions

View File

@@ -9849,8 +9849,28 @@
let aprsMeterCheckInterval = null;
const APRS_METER_TIMEOUT = 5000; // 5 seconds for "no signal" state
// APRS user location (from GPS)
// APRS user location (from GPS or shared observer location)
let aprsUserLocation = { lat: null, lon: null };
// Seed from configured observer location so the map centres on the
// user's position even without a live GPS fix.
(function _seedAprsLocation() {
if (typeof ObserverLocation !== 'undefined' && ObserverLocation.getShared) {
const shared = ObserverLocation.getShared();
if (shared && shared.lat && shared.lon) {
aprsUserLocation.lat = shared.lat;
aprsUserLocation.lon = shared.lon;
return;
}
}
// Fallback: read the Jinja-injected defaults directly
const lat = window.INTERCEPT_DEFAULT_LAT;
const lon = window.INTERCEPT_DEFAULT_LON;
if (lat && lon && Number.isFinite(lat) && Number.isFinite(lon)) {
aprsUserLocation.lat = lat;
aprsUserLocation.lon = lon;
}
})();
let aprsUserMarker = null;
// Calculate distance in miles using Haversine formula