fix(maps): zooming stays centred on the grid and decode maps
The hard maxBounds added for the single-world look fought the zoom: with the world smaller than the window the clamp dragged every zoom step into a corner. The noWrap tiles already guarantee one world on their own, so the bounds go — on both maps.
This commit is contained in:
@@ -128,15 +128,11 @@ export function GridSquareMap({ myGrid, className }: { myGrid?: string; classNam
|
||||
// impossible on any window wider than it is tall: one step out was already
|
||||
// too far in.
|
||||
minZoom: 0,
|
||||
maxBoundsViscosity: 1, // don't let a drag slide the world off to one side
|
||||
|
||||
}).setView([20, 0], 2);
|
||||
// The whole world, once, whatever the window is shaped like — computed by
|
||||
// Leaflet from the container rather than guessed with a zoom number.
|
||||
m.fitWorld({ animate: false });
|
||||
// Latitude only: the poles are the edge of the projection and there is
|
||||
// nothing beyond them, while leaving longitude free keeps a drag from
|
||||
// fighting the operator near the date line.
|
||||
m.setMaxBounds(L.latLngBounds(L.latLng(-85, -Infinity), L.latLng(85, Infinity)));
|
||||
mapRef.current = m;
|
||||
layerRef.current = L.layerGroup().addTo(m);
|
||||
// Leaflet measures its container ONCE, when the map is created, and never
|
||||
|
||||
Reference in New Issue
Block a user