@@ -90,9 +90,6 @@ export function OpenLayersMap({
9090 const previousSearchOverlayHandlerRef =
9191 useRef < ( e : MapBrowserEvent < any > ) => void | null > ( null ) ;
9292 const previousKeyboardHandlerRef = useRef < ( e : KeyboardEvent ) => void > ( null ) ;
93- const [ coordinates , setCoordinates ] = useState < number [ ] | undefined > (
94- undefined
95- ) ;
9693 const [ isDrawing , setIsDrawing ] = useState ( false ) ;
9794 const [ isNewBoxDrawn , setIsNewBoxDrawn ] = useState ( false ) ;
9895 const [ flipTiles , setFlipTiles ] = useState ( true ) ;
@@ -104,7 +101,7 @@ export function OpenLayersMap({
104101 { id : string ; flipped : boolean } [ ]
105102 > ( [ ] ) ;
106103
107- const { activeBaselayer, internalBaselayers } = baselayersState ;
104+ const { activeBaselayer } = baselayersState ;
108105
109106 /**
110107 * Handler fires when user changes map layers. If the units of the new
@@ -175,13 +172,7 @@ export function OpenLayersMap({
175172 newBaselayer : newActiveBaselayer ,
176173 } ) ;
177174 } ,
178- [
179- baselayersState . internalBaselayers ,
180- baselayersState . activeBaselayer ,
181- backHistoryStack ,
182- flipTiles ,
183- setFlipTiles ,
184- ]
175+ [ baselayersState , dispatchBaselayersChange , flipTiles , setFlipTiles ]
185176 ) ;
186177
187178 const goBack = useCallback ( ( ) => {
@@ -194,30 +185,30 @@ export function OpenLayersMap({
194185 onBaselayerChange ( baselayer . id , 'goForward' , baselayer . flipped ) ;
195186 } , [ onBaselayerChange , forwardHistoryStack ] ) ;
196187
197- const tileLayers = useMemo ( ( ) => {
198- return internalBaselayers ?. map (
199- ( layer ) =>
200- new TileLayer ( {
201- properties : { id : 'baselayer-' + layer . layer_id } ,
202- source : new XYZ ( {
203- url : `${ SERVICE_URL } /maps/${ layer . layer_id } /{z}/{-y}/{x}/tile.png?cmap=${ layer . cmap } &vmin=${ layer . isLogScale ? Math . pow ( 10 , layer . vmin ) : layer . vmin } &vmax=${ layer . isLogScale ? Math . pow ( 10 , layer . vmax ) : layer . vmax } &flip=${ flipTiles } &log_norm=${ layer . isLogScale } &abs=${ layer . isAbsoluteValue } ` ,
204- tileGrid : new TileGrid ( {
205- extent : [ - 180 , - 90 , 180 , 90 ] ,
206- origin : [ - 180 , 90 ] ,
207- tileSize : layer . tile_size ,
208- resolutions : getBaselayerResolutions (
209- 180 ,
210- layer . tile_size ,
211- layer . number_of_levels - 1
212- ) ,
213- } ) ,
214- interpolate : false ,
215- projection : 'EPSG:4326' ,
216- tilePixelRatio : layer . tile_size / 256 ,
188+ const activeInternalTileLayer = useMemo ( ( ) => {
189+ if ( assertInternalBaselayer ( activeBaselayer ) ) {
190+ const layer = activeBaselayer ;
191+ return new TileLayer ( {
192+ properties : { id : 'baselayer-' + layer . layer_id } ,
193+ source : new XYZ ( {
194+ url : `${ SERVICE_URL } /maps/${ layer . layer_id } /{z}/{-y}/{x}/tile.png?cmap=${ layer . cmap } &vmin=${ layer . isLogScale ? Math . pow ( 10 , layer . vmin ) : layer . vmin } &vmax=${ layer . isLogScale ? Math . pow ( 10 , layer . vmax ) : layer . vmax } &flip=${ flipTiles } &log_norm=${ layer . isLogScale } &abs=${ layer . isAbsoluteValue } ` ,
195+ tileGrid : new TileGrid ( {
196+ extent : [ - 180 , - 90 , 180 , 90 ] ,
197+ origin : [ - 180 , 90 ] ,
198+ tileSize : layer . tile_size ,
199+ resolutions : getBaselayerResolutions (
200+ 180 ,
201+ layer . tile_size ,
202+ layer . number_of_levels - 1
203+ ) ,
217204 } ) ,
218- } )
219- ) ;
220- } , [ internalBaselayers , flipTiles ] ) ;
205+ interpolate : false ,
206+ projection : 'EPSG:4326' ,
207+ tilePixelRatio : layer . tile_size / 256 ,
208+ } ) ,
209+ } ) ;
210+ }
211+ } , [ flipTiles , activeBaselayer ] ) ;
221212
222213 const externalTileLayers = useMemo ( ( ) => {
223214 return EXTERNAL_BASELAYERS . map ( ( b ) => {
@@ -254,10 +245,6 @@ export function OpenLayersMap({
254245 view : new View ( DEFAULT_INTERNAL_MAP_SETTINGS ) ,
255246 } ) ;
256247
257- mapRef . current . on ( 'pointermove' , ( e ) => {
258- setCoordinates ( e . coordinate ) ;
259- } ) ;
260-
261248 /**
262249 * BEGIN
263250 * Set up overlay, markers, and events for the external searches functionality
@@ -347,7 +334,7 @@ export function OpenLayersMap({
347334 }
348335 }
349336 } ,
350- [ externalSearchMarkerRef . current , flipTiles ]
337+ [ externalSearchMarkerRef , flipTiles ]
351338 ) ;
352339
353340 useEffect ( ( ) => {
@@ -390,7 +377,7 @@ export function OpenLayersMap({
390377 } , [ flipTiles ] ) ;
391378
392379 /**
393- * Updates tilelayers when new baselayer is selected and/or color map settings change
380+ * Updates map layer when new baselayer is selected and/or color map settings change
394381 */
395382 useEffect ( ( ) => {
396383 if ( mapRef . current && activeBaselayer ) {
@@ -401,11 +388,8 @@ export function OpenLayersMap({
401388 mapRef . current ?. removeLayer ( layer ) ;
402389 }
403390 } ) ;
404- if ( assertInternalBaselayer ( activeBaselayer ) ) {
405- const activeLayer = tileLayers ! . find (
406- ( t ) => t . get ( 'id' ) === 'baselayer-' + activeBaselayer ! . layer_id
407- ) ! ;
408- mapRef . current . addLayer ( activeLayer ) ;
391+ if ( assertInternalBaselayer ( activeBaselayer ) && activeInternalTileLayer ) {
392+ mapRef . current . addLayer ( activeInternalTileLayer ) ;
409393 } else {
410394 const externalBaselayer = EXTERNAL_BASELAYERS . find (
411395 ( b ) => b . layer_id === activeBaselayer . layer_id
@@ -419,7 +403,7 @@ export function OpenLayersMap({
419403 mapRef . current . addLayer ( activeLayer ) ;
420404 }
421405 }
422- } , [ activeBaselayer , tileLayers ] ) ;
406+ } , [ activeBaselayer , activeInternalTileLayer , externalTileLayers ] ) ;
423407
424408 /**
425409 * Add keyboard support for switching baselayers
@@ -474,7 +458,7 @@ export function OpenLayersMap({
474458 view . setCenter ( newCenter ) ;
475459 }
476460 setFlipTiles ( ! flipTiles ) ;
477- } , [ setFlipTiles , flipTiles , mapRef . current ] ) ;
461+ } , [ setFlipTiles , flipTiles , mapRef ] ) ;
478462
479463 return (
480464 < div id = "map" style = { { cursor : isDrawing ? 'crosshair' : 'auto' } } >
@@ -548,15 +532,12 @@ export function OpenLayersMap({
548532 goForward = { goForward }
549533 />
550534 < GraticuleLayer mapRef = { mapRef } flipped = { flipTiles } />
551- { coordinates && (
552- < CoordinatesDisplay
553- coordinates = { coordinates }
554- flipped = { flipTiles }
555- mapRef = { mapRef }
556- externalSearchRef = { externalSearchRef }
557- externalSearchMarkerRef = { externalSearchMarkerRef }
558- />
559- ) }
535+ < CoordinatesDisplay
536+ flipped = { flipTiles }
537+ mapRef = { mapRef }
538+ externalSearchRef = { externalSearchRef }
539+ externalSearchMarkerRef = { externalSearchMarkerRef }
540+ />
560541 </ div >
561542 ) ;
562543}
0 commit comments