mirror of
https://github.com/smittix/intercept.git
synced 2026-07-05 16:18:12 -07:00
refactor(radiosonde): use MapUtils.init + Settings tile layer on sonde map
Replace hardcoded L.map() + CartoCD dark tile layer with MapUtils.init() and add tactical overlays. Adds test verifying the cartocdn URL is gone. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -278,6 +278,7 @@
|
|||||||
|
|
||||||
// Map management
|
// Map management
|
||||||
let radiosondeMap = null;
|
let radiosondeMap = null;
|
||||||
|
let radiosondeMapOverlays = null;
|
||||||
let radiosondeMarkers = new Map();
|
let radiosondeMarkers = new Map();
|
||||||
let radiosondeTracks = new Map();
|
let radiosondeTracks = new Map();
|
||||||
let radiosondeTrackPoints = new Map();
|
let radiosondeTrackPoints = new Map();
|
||||||
@@ -295,16 +296,23 @@
|
|||||||
}
|
}
|
||||||
const hasLocation = radiosondeStationLocation.lat !== 0 || radiosondeStationLocation.lon !== 0;
|
const hasLocation = radiosondeStationLocation.lat !== 0 || radiosondeStationLocation.lon !== 0;
|
||||||
|
|
||||||
radiosondeMap = L.map('radiosondeMapContainer', {
|
const observerLocation = hasLocation
|
||||||
center: hasLocation ? [radiosondeStationLocation.lat, radiosondeStationLocation.lon] : [40, -95],
|
? { lat: radiosondeStationLocation.lat, lon: radiosondeStationLocation.lon }
|
||||||
zoom: hasLocation ? 7 : 4,
|
: { lat: 40, lon: -95 };
|
||||||
zoomControl: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
L.tileLayer('https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png', {
|
radiosondeMap = MapUtils.init('radiosondeMapContainer', {
|
||||||
attribution: '© OpenStreetMap © CARTO',
|
center: [observerLocation.lat, observerLocation.lon],
|
||||||
|
zoom: hasLocation ? 7 : 4,
|
||||||
|
minZoom: 2,
|
||||||
maxZoom: 18,
|
maxZoom: 18,
|
||||||
}).addTo(radiosondeMap);
|
});
|
||||||
|
if (radiosondeMap) {
|
||||||
|
window.radiosondeMap = radiosondeMap;
|
||||||
|
radiosondeMapOverlays = MapUtils.addTacticalOverlays(radiosondeMap, {
|
||||||
|
hudPanels: { modeName: 'RADIOSONDE', getContactCount: () => 0 },
|
||||||
|
scaleBar: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Add station marker if we have a location
|
// Add station marker if we have a location
|
||||||
if (hasLocation) {
|
if (hasLocation) {
|
||||||
|
|||||||
@@ -62,3 +62,16 @@ def test_index_includes_map_utils(client):
|
|||||||
html = resp.data.decode()
|
html = resp.data.decode()
|
||||||
assert "map-utils.js" in html
|
assert "map-utils.js" in html
|
||||||
assert "MapUtils.init" in html
|
assert "MapUtils.init" in html
|
||||||
|
|
||||||
|
|
||||||
|
def test_radiosonde_mode_uses_map_utils(client):
|
||||||
|
"""Main SPA index (which includes radiosonde partial) uses MapUtils for radiosonde map."""
|
||||||
|
with client.session_transaction() as sess:
|
||||||
|
sess["logged_in"] = True
|
||||||
|
resp = client.get("/")
|
||||||
|
assert resp.status_code == 200
|
||||||
|
html = resp.data.decode()
|
||||||
|
# Radiosonde map init in partial should call MapUtils.init, not bare L.tileLayer
|
||||||
|
assert "radiosondeMap" in html
|
||||||
|
# The bare cartocdn URL that was previously hardcoded should be gone
|
||||||
|
assert "basemaps.cartocdn.com/dark_all" not in html or html.count("basemaps.cartocdn.com/dark_all") == 0
|
||||||
|
|||||||
Reference in New Issue
Block a user