forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			No EOL
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			No EOL
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import * as L from "leaflet";
 | 
						|
import TilesourceConfig from "../../Models/ThemeConfig/TilesourceConfig";
 | 
						|
import {UIEventSource} from "../../Logic/UIEventSource";
 | 
						|
import ShowOverlayLayer from "./ShowOverlayLayer";
 | 
						|
 | 
						|
export default class ShowOverlayLayerImplementation {
 | 
						|
    
 | 
						|
    public static Implement(){
 | 
						|
        ShowOverlayLayer.implementation = ShowOverlayLayerImplementation.AddToMap
 | 
						|
    }
 | 
						|
    
 | 
						|
    public static AddToMap(config: TilesourceConfig,
 | 
						|
                           leafletMap: UIEventSource<any>,
 | 
						|
                           isShown: UIEventSource<boolean> = undefined){
 | 
						|
        leafletMap.map(leaflet => {
 | 
						|
            if (leaflet === undefined) {
 | 
						|
                return;
 | 
						|
            }
 | 
						|
 | 
						|
            const tileLayer = L.tileLayer(config.source,
 | 
						|
                {
 | 
						|
                    attribution: "",
 | 
						|
                    maxZoom: config.maxzoom,
 | 
						|
                    minZoom: config.minzoom,
 | 
						|
                    // @ts-ignore
 | 
						|
                    wmts: false,
 | 
						|
                });
 | 
						|
 | 
						|
            if (isShown === undefined) {
 | 
						|
                tileLayer.addTo(leaflet)
 | 
						|
            }
 | 
						|
 | 
						|
            isShown?.addCallbackAndRunD(isShown => {
 | 
						|
                if (isShown) {
 | 
						|
                    tileLayer.addTo(leaflet)
 | 
						|
                } else {
 | 
						|
                    leaflet.removeLayer(tileLayer)
 | 
						|
                }
 | 
						|
 | 
						|
            })
 | 
						|
 | 
						|
        })
 | 
						|
    }
 | 
						|
    
 | 
						|
} |