forked from MapComplete/MapComplete
		
	Move SPlit-points to seperate layer; fix rendering bug on minimaps
This commit is contained in:
		
							parent
							
								
									5bba0f0a9b
								
							
						
					
					
						commit
						a3185f2d13
					
				
					 4 changed files with 36 additions and 25 deletions
				
			
		|  | @ -16,19 +16,10 @@ import StaticFeatureSource from "../../Logic/FeatureSource/Sources/StaticFeature | |||
| import ShowDataMultiLayer from "../ShowDataLayer/ShowDataMultiLayer"; | ||||
| import LayerConfig from "../../Models/ThemeConfig/LayerConfig"; | ||||
| import {BBox} from "../../Logic/BBox"; | ||||
| 
 | ||||
| import * as split_point from "../../assets/layers/split_point/split_point.json" | ||||
| export default class SplitRoadWizard extends Toggle { | ||||
|     private static splitLayerStyling = new LayerConfig({ | ||||
|         id: "splitpositions", | ||||
|         source: {osmTags: "_cutposition=yes"}, | ||||
|         mapRendering: [ | ||||
|             { | ||||
|                 location: ["point", "centroid"], | ||||
|                 icon: {render: "circle:white;./assets/svg/scissors.svg"}, | ||||
|                 iconSize: {render: "30,30,center"} | ||||
|             } | ||||
|         ], | ||||
|     }, "(BUILTIN) SplitRoadWizard.ts", true) | ||||
|     // @ts-ignore
 | ||||
|     private static splitLayerStyling = new LayerConfig(split_point, "(BUILTIN) SplitRoadWizard.ts", true) | ||||
| 
 | ||||
|     public dialogIsOpened: UIEventSource<boolean> | ||||
| 
 | ||||
|  | @ -68,14 +59,6 @@ export default class SplitRoadWizard extends Toggle { | |||
|         // Define how a cut is displayed on the map
 | ||||
| 
 | ||||
|         // Datalayer displaying the road and the cut points (if any)
 | ||||
|         new ShowDataLayer({ | ||||
|             features: new StaticFeatureSource(splitPoints, true), | ||||
|             leafletMap: miniMap.leafletMap, | ||||
|             zoomToFeatures: false, | ||||
|             enablePopups: false, | ||||
|             layerToShow: SplitRoadWizard.splitLayerStyling, | ||||
|         }) | ||||
| 
 | ||||
|         new ShowDataMultiLayer({ | ||||
|             features: new StaticFeatureSource([roadElement], false), | ||||
|             layers: State.state.filteredLayers, | ||||
|  | @ -84,6 +67,16 @@ export default class SplitRoadWizard extends Toggle { | |||
|             zoomToFeatures: true, | ||||
|             allElements: State.state.allElements, | ||||
|         }) | ||||
|          | ||||
|         new ShowDataLayer({ | ||||
|             features: new StaticFeatureSource(splitPoints, true), | ||||
|             leafletMap: miniMap.leafletMap, | ||||
|             zoomToFeatures: false, | ||||
|             enablePopups: false, | ||||
|             layerToShow: SplitRoadWizard.splitLayerStyling, | ||||
|         }) | ||||
| 
 | ||||
|         | ||||
| 
 | ||||
|         /** | ||||
|          * Handles a click on the overleaf map. | ||||
|  | @ -109,10 +102,8 @@ export default class SplitRoadWizard extends Toggle { | |||
|             const pointOnRoad = GeoOperations.nearestPoint(roadElement, coordinates); // pointOnRoad is a geojson
 | ||||
| 
 | ||||
|             // Update point properties to let it match the layer
 | ||||
|             pointOnRoad.properties._cutposition = "yes"; | ||||
|             pointOnRoad.properties["_split_point"] = "yes"; | ||||
| 
 | ||||
|             // let the state remember the point, to be able to retrieve it later by id
 | ||||
|             State.state.allElements.addOrGetElement(pointOnRoad); | ||||
| 
 | ||||
|             // Add it to the list of all points and notify observers
 | ||||
|             splitPoints.data.push({feature: pointOnRoad, freshness: new Date()}); // show the point on the data layer
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue