import react from 'react'; import TiledLayer from './TiledLayer'; interface Point { x: number; y: number; } interface TiledLayerConductorProperties { height: number; width: number; shift: Point; zoom: number; tileSize: number; numberOfZoomLevels?: number; } const TiledLayerConductor: react.FC = ( props: TiledLayerConductorProperties ) => { const nbTiles = Math.ceil((Math.max(props.width, props.height) * 2) / 256) + 2; const numberOfZoomLevels = props.numberOfZoomLevels === undefined ? 1 : props.numberOfZoomLevels % 2 === 0 ? props.numberOfZoomLevels + 1 : props.numberOfZoomLevels; const layers = []; for (let i = 0; i < numberOfZoomLevels; i++) { layers.push( = 2 ** (i - 0.5) : props.zoom < 2 ** (i + 0.5) && props.zoom >= 2 ** (i - 0.5) } /> ); } return <>{layers}; }; export default TiledLayerConductor;