| 
									
										
										
										
											2021-01-04 04:36:21 +01:00
										 |  |  | import BaseLayer from "../../Models/BaseLayer"; | 
					
						
							| 
									
										
										
										
											2021-01-02 21:03:40 +01:00
										 |  |  | import {UIEventSource} from "../UIEventSource"; | 
					
						
							| 
									
										
										
										
											2021-07-14 00:17:15 +02:00
										 |  |  | import Loc from "../../Models/Loc"; | 
					
						
							| 
									
										
										
										
											2020-09-25 21:58:29 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-15 14:52:11 +02:00
										 |  |  | export interface AvailableBaseLayersObj { | 
					
						
							|  |  |  |     readonly osmCarto: BaseLayer; | 
					
						
							|  |  |  |     layerOverview: BaseLayer[]; | 
					
						
							| 
									
										
										
										
											2021-11-07 16:34:51 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     AvailableLayersAt(location: UIEventSource<Loc>): UIEventSource<BaseLayer[]> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SelectBestLayerAccordingTo(location: UIEventSource<Loc>, preferedCategory: UIEventSource<string | string[]>): UIEventSource<BaseLayer>; | 
					
						
							| 
									
										
										
										
											2021-10-15 14:52:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-25 21:58:29 +02:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Calculates which layers are available at the current location | 
					
						
							| 
									
										
										
										
											2021-01-02 16:04:16 +01:00
										 |  |  |  * Changes the basemap | 
					
						
							| 
									
										
										
										
											2020-09-25 21:58:29 +02:00
										 |  |  |  */ | 
					
						
							|  |  |  | export default class AvailableBaseLayers { | 
					
						
							| 
									
										
										
										
											2021-11-07 16:34:51 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-15 14:52:11 +02:00
										 |  |  |     public static layerOverview: BaseLayer[]; | 
					
						
							|  |  |  |     public static osmCarto: BaseLayer; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private static implementation: AvailableBaseLayersObj | 
					
						
							| 
									
										
										
										
											2021-11-07 16:34:51 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-15 14:52:11 +02:00
										 |  |  |     static AvailableLayersAt(location: UIEventSource<Loc>): UIEventSource<BaseLayer[]> { | 
					
						
							| 
									
										
										
										
											2021-10-20 00:09:40 +02:00
										 |  |  |         return AvailableBaseLayers.implementation?.AvailableLayersAt(location) ?? new UIEventSource<BaseLayer[]>([]); | 
					
						
							| 
									
										
										
										
											2020-09-25 21:58:29 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-15 14:52:11 +02:00
										 |  |  |     static SelectBestLayerAccordingTo(location: UIEventSource<Loc>, preferedCategory: UIEventSource<string | string[]>): UIEventSource<BaseLayer> { | 
					
						
							| 
									
										
										
										
											2021-10-20 00:09:40 +02:00
										 |  |  |         return AvailableBaseLayers.implementation?.SelectBestLayerAccordingTo(location, preferedCategory) ?? new UIEventSource<BaseLayer>(undefined); | 
					
						
							| 
									
										
										
										
											2020-09-25 21:58:29 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-27 22:48:43 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-09-27 23:37:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-07 16:34:51 +01:00
										 |  |  |     public static implement(backend: AvailableBaseLayersObj) { | 
					
						
							| 
									
										
										
										
											2021-10-15 14:52:11 +02:00
										 |  |  |         AvailableBaseLayers.layerOverview = backend.layerOverview | 
					
						
							|  |  |  |         AvailableBaseLayers.osmCarto = backend.osmCarto | 
					
						
							|  |  |  |         AvailableBaseLayers.implementation = backend | 
					
						
							| 
									
										
										
										
											2020-09-25 21:58:29 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |