| 
									
										
										
										
											2023-05-30 02:52:22 +02:00
										 |  |  | <script lang="ts"> | 
					
						
							| 
									
										
										
										
											2023-06-01 02:52:21 +02:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Can be used for both WayImportFlow and ConflateImportFlow | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2023-05-30 02:52:22 +02:00
										 |  |  |     import WayImportFlowState from "./WayImportFlowState"; | 
					
						
							|  |  |  |     import ImportFlow from "./ImportFlow.svelte"; | 
					
						
							|  |  |  |     import MapControlButton from "../../Base/MapControlButton.svelte"; | 
					
						
							|  |  |  |     import {Square3Stack3dIcon} from "@babeard/svelte-heroicons/solid"; | 
					
						
							|  |  |  |     import {UIEventSource} from "../../../Logic/UIEventSource"; | 
					
						
							|  |  |  |     import {Map as MlMap} from "maplibre-gl" | 
					
						
							|  |  |  |     import {MapLibreAdaptor} from "../../Map/MapLibreAdaptor"; | 
					
						
							|  |  |  |     import MaplibreMap from "../../Map/MaplibreMap.svelte"; | 
					
						
							|  |  |  |     import ShowDataLayer from "../../Map/ShowDataLayer"; | 
					
						
							|  |  |  |     import StaticFeatureSource from "../../../Logic/FeatureSource/Sources/StaticFeatureSource"; | 
					
						
							|  |  |  |     import {ImportFlowUtils} from "./ImportFlow"; | 
					
						
							|  |  |  |     import {GeoOperations} from "../../../Logic/GeoOperations"; | 
					
						
							| 
									
										
										
										
											2023-06-01 02:52:21 +02:00
										 |  |  |     import ConflateImportFlowState from "./ConflateImportFlowState"; | 
					
						
							|  |  |  |     export let importFlow: WayImportFlowState | ConflateImportFlowState | 
					
						
							| 
									
										
										
										
											2023-05-30 02:52:22 +02:00
										 |  |  |      | 
					
						
							|  |  |  |     const state = importFlow.state | 
					
						
							|  |  |  |     const map = new UIEventSource<MlMap>(undefined) | 
					
						
							|  |  |  |     const [lon, lat] = GeoOperations.centerpointCoordinates(importFlow.originalFeature) | 
					
						
							|  |  |  |     const mla = new MapLibreAdaptor(map, { | 
					
						
							|  |  |  |         allowMoving: UIEventSource.feedFrom(state.featureSwitchIsTesting), | 
					
						
							|  |  |  |         allowZooming: UIEventSource.feedFrom(state.featureSwitchIsTesting), | 
					
						
							|  |  |  |         rasterLayer : state.mapProperties.rasterLayer, | 
					
						
							|  |  |  |         location: new UIEventSource<{lon: number; lat: number}>({lon, lat}), | 
					
						
							|  |  |  |         zoom: new UIEventSource<number>(18) | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Show all relevant data - including (eventually) the way of which the geometry will be replaced | 
					
						
							|  |  |  |     ShowDataLayer.showMultipleLayers( | 
					
						
							|  |  |  |         map, | 
					
						
							|  |  |  |         new StaticFeatureSource([importFlow.originalFeature]), | 
					
						
							|  |  |  |         state.layout.layers, | 
					
						
							|  |  |  |         {zoomToFeatures: false} | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     importFlow.GetPreview().then(features => { | 
					
						
							|  |  |  |         new ShowDataLayer(map, { | 
					
						
							|  |  |  |             zoomToFeatures: false, | 
					
						
							|  |  |  |             features, | 
					
						
							|  |  |  |             layer: ImportFlowUtils.conflationLayer, | 
					
						
							|  |  |  |         }) | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <ImportFlow {importFlow} on:confirm={() => importFlow.onConfirm()}> | 
					
						
							|  |  |  |     <div slot="map" class="relative"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         <div class="h-32"> | 
					
						
							|  |  |  |             <MaplibreMap {map}/> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |         <MapControlButton on:click={() => state.guistate.backgroundLayerSelectionIsOpened.setData(true)} cls="absolute bottom-0"> | 
					
						
							|  |  |  |             <Square3Stack3dIcon class="w-6 h-6"/> | 
					
						
							|  |  |  |         </MapControlButton> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  | </ImportFlow> |