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, isShown: UIEventSource = 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) } }) }) } }