@@ -486,29 +486,28 @@ function initMap() {
486486 metaReferrer .content = ' no-referrer-when-downgrade'
487487 }
488488
489- // Tile layer with retry on 403 (transient referrer issues)
490- const OsmTileLayer = L .TileLayer .extend ({
491- createTile(coords : any , done : any ) {
492- const tile = L .TileLayer .prototype .createTile .call (this , coords , done ) as HTMLImageElement
493- tile .referrerPolicy = ' no-referrer-when-downgrade'
494- const originalSrc = tile .src
495- tile .addEventListener (' error' , () => {
496- // Retry once after a short delay
497- if (! tile .dataset .retried ) {
498- tile .dataset .retried = ' 1'
499- setTimeout (() => { tile .src = originalSrc }, 500 )
500- }
501- }, { once: false })
502- return tile
503- }
504- })
505- new OsmTileLayer (' https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png' , {
489+ // Tile layer with referrer policy fix and retry on 403
490+ const tileLayer = L .tileLayer (' https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png' , {
506491 attribution: ' © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>' ,
507492 maxZoom: 19 ,
508493 keepBuffer: 2 ,
509494 noWrap: true ,
510495 }).addTo (map )
511496
497+ // Set referrer policy on each tile and retry on failure
498+ tileLayer .on (' tileloadstart' , (event : L .TileEvent ) => {
499+ const tile = event .tile as HTMLImageElement
500+ tile .referrerPolicy = ' no-referrer-when-downgrade'
501+ })
502+ tileLayer .on (' tileerror' , (event : L .TileErrorEvent ) => {
503+ const tile = event .tile as HTMLImageElement
504+ if (! tile .dataset .retried ) {
505+ tile .dataset .retried = ' 1'
506+ const src = tile .src
507+ setTimeout (() => { tile .src = src }, 500 )
508+ }
509+ })
510+
512511 // Add photo markers
513512 addPhotoMarkers ()
514513
0 commit comments