mirror of
https://github.com/Kpa-clawbot/meshcore-analyzer.git
synced 2026-04-27 11:55:12 +00:00
Map: default to Bay Area, save/restore user position+zoom
Defaults to [37.6, -122.1] zoom 9. Saves position to localStorage on moveend. Restores on page load. Skips fitBounds when user has saved position.
This commit is contained in:
+17
-3
@@ -61,13 +61,27 @@
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
// Init Leaflet
|
||||
map = L.map('leaflet-map', { zoomControl: true }).setView([37.5, -122], 6);
|
||||
// Init Leaflet — restore saved position or default to Bay Area
|
||||
const defaultCenter = [37.6, -122.1];
|
||||
const defaultZoom = 9;
|
||||
let initCenter = defaultCenter;
|
||||
let initZoom = defaultZoom;
|
||||
const savedView = localStorage.getItem('map-view');
|
||||
if (savedView) {
|
||||
try { const v = JSON.parse(savedView); initCenter = [v.lat, v.lng]; initZoom = v.zoom; } catch {}
|
||||
}
|
||||
map = L.map('leaflet-map', { zoomControl: true }).setView(initCenter, initZoom);
|
||||
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||
attribution: '© OpenStreetMap',
|
||||
maxZoom: 19,
|
||||
}).addTo(map);
|
||||
|
||||
// Save position on move
|
||||
map.on('moveend', () => {
|
||||
const c = map.getCenter();
|
||||
localStorage.setItem('map-view', JSON.stringify({ lat: c.lat, lng: c.lng, zoom: map.getZoom() }));
|
||||
});
|
||||
|
||||
markerLayer = L.layerGroup().addTo(map);
|
||||
routeLayer = L.layerGroup().addTo(map);
|
||||
|
||||
@@ -154,7 +168,7 @@
|
||||
buildJumpButtons();
|
||||
|
||||
renderMarkers();
|
||||
fitBounds();
|
||||
if (!savedView) fitBounds();
|
||||
} catch (e) {
|
||||
console.error('Map load error:', e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user