The initial zoom level should be the one for the medium layer.
This commit is contained in:
parent
e418ae0fbb
commit
fb48042b62
|
@ -20,9 +20,6 @@ interface TiledLayerConductorProperties {
|
||||||
const TiledLayerConductor: react.FC<TiledLayerConductorProperties> = (
|
const TiledLayerConductor: react.FC<TiledLayerConductorProperties> = (
|
||||||
props: TiledLayerConductorProperties
|
props: TiledLayerConductorProperties
|
||||||
) => {
|
) => {
|
||||||
const nbTiles =
|
|
||||||
Math.ceil((Math.max(props.width, props.height) * 2) / 256) + 2;
|
|
||||||
|
|
||||||
const numberOfZoomLevels =
|
const numberOfZoomLevels =
|
||||||
props.numberOfZoomLevels === undefined
|
props.numberOfZoomLevels === undefined
|
||||||
? 1
|
? 1
|
||||||
|
@ -31,25 +28,34 @@ const TiledLayerConductor: react.FC<TiledLayerConductorProperties> = (
|
||||||
: props.numberOfZoomLevels;
|
: props.numberOfZoomLevels;
|
||||||
|
|
||||||
const layers = [];
|
const layers = [];
|
||||||
|
|
||||||
|
const safetyZoomLevels = Math.floor(numberOfZoomLevels / 2);
|
||||||
|
|
||||||
|
const nbTiles =
|
||||||
|
Math.ceil(
|
||||||
|
(Math.max(props.width, props.height) * 2 ** safetyZoomLevels) / 256
|
||||||
|
) + 2;
|
||||||
|
|
||||||
const activeZoomLevel = Math.min(
|
const activeZoomLevel = Math.min(
|
||||||
Math.max(Math.round(Math.log2(props.zoom)), 0),
|
Math.max(Math.round(Math.log2(props.zoom)) + safetyZoomLevels, 0),
|
||||||
numberOfZoomLevels - 1
|
numberOfZoomLevels - 1
|
||||||
);
|
);
|
||||||
|
|
||||||
const getTiledLayer = (zoomLevel: number, isActive: boolean) => {
|
const getTiledLayer = (zoomLevel: number, isActive: boolean) => {
|
||||||
|
const zoom = 2 ** (zoomLevel - safetyZoomLevels);
|
||||||
return (
|
return (
|
||||||
<TiledLayer
|
<TiledLayer
|
||||||
key={`layer${zoomLevel + props.baseZoomLevel}`}
|
key={`layer${zoomLevel + props.baseZoomLevel}`}
|
||||||
height={props.height * 2 ** zoomLevel}
|
height={props.height * zoom}
|
||||||
width={props.width * 2 ** zoomLevel}
|
width={props.width * zoom}
|
||||||
shift={{
|
shift={{
|
||||||
x: props.shift.x * 2 ** zoomLevel,
|
x: props.shift.x * zoom,
|
||||||
y: props.shift.y * 2 ** zoomLevel,
|
y: props.shift.y * zoom,
|
||||||
}}
|
}}
|
||||||
zoom={props.zoom}
|
zoom={props.zoom}
|
||||||
layerZoom={2 ** -zoomLevel}
|
layerZoom={1 / zoom}
|
||||||
tileSize={256}
|
tileSize={256}
|
||||||
nbTiles={nbTiles * 2 ** zoomLevel}
|
nbTiles={nbTiles * zoom}
|
||||||
active={isActive}
|
active={isActive}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue