From e684b6155f9b3a4ba6c779e691be68d8b3115fbf Mon Sep 17 00:00:00 2001 From: evlist Date: Sat, 15 Oct 2022 12:04:18 +0200 Subject: [PATCH] New component to manage tiled layers. --- svgmap/src/components/map/Map.tsx | 30 +-------- .../components/map/TiledLayersConductor.tsx | 63 +++++++++++++++++++ 2 files changed, 66 insertions(+), 27 deletions(-) create mode 100644 svgmap/src/components/map/TiledLayersConductor.tsx diff --git a/svgmap/src/components/map/Map.tsx b/svgmap/src/components/map/Map.tsx index bd280d8..8a4bf49 100644 --- a/svgmap/src/components/map/Map.tsx +++ b/svgmap/src/components/map/Map.tsx @@ -7,6 +7,7 @@ import SlippyBoard from './SlippyBoard'; import SingleTouchHandler from './SingleTouchHandler'; import DoubleTouchHandler from './DoubleTouchHandler'; import TiledLayer from './TiledLayer'; +import TiledLayerConductor from './TiledLayersConductor'; interface MapProperties { height: number; @@ -78,38 +79,13 @@ const Map: react.FC = (props: MapProperties) => { height={boardSize} fill='red' /> - - = Math.SQRT2 && zoom < 2 * Math.SQRT2} - /> - = 2 * Math.SQRT2} + key='tiled-layers' /> , diff --git a/svgmap/src/components/map/TiledLayersConductor.tsx b/svgmap/src/components/map/TiledLayersConductor.tsx new file mode 100644 index 0000000..96fe0df --- /dev/null +++ b/svgmap/src/components/map/TiledLayersConductor.tsx @@ -0,0 +1,63 @@ +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; +} + +const TiledLayerConductor: react.FC = ( + props: TiledLayerConductorProperties +) => { + const nbTiles = + Math.ceil((Math.max(props.width, props.height) * 2) / 256) + 2; + + return ( + <> + {' '} + + = Math.SQRT2 && props.zoom < 2 * Math.SQRT2} + /> + = 2 * Math.SQRT2} + /> + + ); +}; + +export default TiledLayerConductor;