forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
| <script lang="ts">
 | |
|   /**
 | |
|    * Can be used for both WayImportFlow and ConflateImportFlow
 | |
|    */
 | |
|   import WayImportFlowState from "./WayImportFlowState"
 | |
|   import ImportFlow from "./ImportFlow.svelte"
 | |
|   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"
 | |
|   import ConflateImportFlowState from "./ConflateImportFlowState"
 | |
|   import OpenBackgroundSelectorButton from "../../BigComponents/OpenBackgroundSelectorButton.svelte";
 | |
| 
 | |
|   export let importFlow: WayImportFlowState | ConflateImportFlowState
 | |
| 
 | |
|   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>
 | |
|     <div class="absolute bottom-0">
 | |
|       <OpenBackgroundSelectorButton/>
 | |
|     </div>
 | |
|   </div>
 | |
| </ImportFlow>
 |