forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			73 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {UIEventSource} from "./Logic/UIEventSource";
 | 
						|
import {AllKnownLayouts} from "./Customizations/AllKnownLayouts";
 | 
						|
import State from "./State";
 | 
						|
import LocationInput from "./UI/Input/LocationInput";
 | 
						|
import Loc from "./Models/Loc";
 | 
						|
import {VariableUiElement} from "./UI/Base/VariableUIElement";
 | 
						|
import AvailableBaseLayers from "./Logic/Actors/AvailableBaseLayers";
 | 
						|
import LayoutConfig from "./Models/ThemeConfig/LayoutConfig";
 | 
						|
 | 
						|
const layout = new UIEventSource<LayoutConfig>(AllKnownLayouts.allKnownLayouts.get("cycle_infra"))
 | 
						|
State.state = new State(layout.data)
 | 
						|
 | 
						|
const features = new UIEventSource<{ feature: any }[]>([
 | 
						|
    {
 | 
						|
        feature: {
 | 
						|
            "type": "Feature",
 | 
						|
            "properties": {},
 | 
						|
            "geometry": {
 | 
						|
                "type": "LineString",
 | 
						|
                "coordinates": [
 | 
						|
                    [
 | 
						|
                        3.219616413116455,
 | 
						|
                        51.215315026941276
 | 
						|
                    ],
 | 
						|
                    [
 | 
						|
                        3.221080899238586,
 | 
						|
                        51.21564432998662
 | 
						|
                    ]
 | 
						|
                ]
 | 
						|
            }
 | 
						|
        }
 | 
						|
    },
 | 
						|
    {
 | 
						|
        feature: {
 | 
						|
            "type": "Feature",
 | 
						|
            "properties": {},
 | 
						|
            "geometry": {
 | 
						|
                "type": "LineString",
 | 
						|
                "coordinates": [
 | 
						|
                    [
 | 
						|
                        3.220340609550476,
 | 
						|
                        51.21547967875836
 | 
						|
                    ],
 | 
						|
                    [
 | 
						|
                        3.2198095321655273,
 | 
						|
                        51.216390293480515
 | 
						|
                    ]
 | 
						|
                ]
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
])
 | 
						|
 | 
						|
features.data.map(f => State.state.allElements.addOrGetElement(f.feature))
 | 
						|
const loc = new UIEventSource<Loc>({
 | 
						|
    zoom: 19,
 | 
						|
    lat: 51.21547967875836,
 | 
						|
    lon: 3.220340609550476
 | 
						|
})
 | 
						|
const li = new LocationInput(
 | 
						|
    {
 | 
						|
        mapBackground: AvailableBaseLayers.SelectBestLayerAccordingTo(loc, new UIEventSource<string | string[]>("map")),
 | 
						|
        snapTo: features,
 | 
						|
        snappedPointTags: {
 | 
						|
            "barrier": "cycle_barrier"
 | 
						|
        },
 | 
						|
        maxSnapDistance: 15,
 | 
						|
        requiresSnapping: false,
 | 
						|
        centerLocation: loc
 | 
						|
    }
 | 
						|
)
 | 
						|
li.SetStyle("height: 30rem").AttachTo("maindiv")
 | 
						|
new VariableUiElement(li.GetValue().map(JSON.stringify)).AttachTo("extradiv")
 |