src/11-tilelayer.ts (raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
class TileLayerWrapper { self: L.TileLayer; name: string; visible: boolean = false; constructor(name: string, self: L.TileLayer) { this.self = self; this.name = name; } static constructLayer(name: string, self: L.TileLayer): TileLayerWrapper { const wrapper = new TileLayerWrapper(name, self); TileLayerWrapper.layers.push(wrapper); return wrapper; } static getActiveLayer(): TileLayerWrapper | null { for (const l of TileLayerWrapper.layers) { if (l.visible == true) { return l; } } return null; } static layers: TileLayerWrapper[] = new Array<TileLayerWrapper>(); static enableOnly(self: TileLayerWrapper, map: L.Map): void { for (const l of TileLayerWrapper.layers) { if (l.visible) { l.self.removeFrom(map); l.visible = false; } if (l.name == self.name) { l.self.addTo(map); l.visible = true; } } } } |