diff --git a/src/components/Map/useMapCore.js b/src/components/Map/useMapCore.js index 625fbc3..081e837 100644 --- a/src/components/Map/useMapCore.js +++ b/src/components/Map/useMapCore.js @@ -84,6 +84,10 @@ export function useMapCore(theme) { map.setZoom(v.zoom); // Restore pitch from storage, default to 45 if not saved map.setPitch(typeof v.pitch === "number" ? v.pitch : 45); + // Restore bearing (rotation) if saved + if (typeof v.bearing === "number") { + map.setBearing(v.bearing); + } hadLastView = true; } } @@ -114,14 +118,17 @@ export function useMapCore(theme) { const vp = getViewFromMap(map); setViewParams(vp); try { - const center = vp.center; + // Use map.getCenter() directly for accurate geographic center + // (bounds.getCenter() can be offset when pitch is applied) + const center = map.getCenter(); localStorage.setItem( LAST_VIEW_KEY, JSON.stringify({ - lat: center[1], - lon: center[0], + lat: center.lat, + lon: center.lng, zoom: map.getZoom(), - pitch: map.getPitch() + pitch: map.getPitch(), + bearing: map.getBearing() }) ); } catch {}