forked from MapComplete/MapComplete
		
	Chore: housekeeping, new docs
This commit is contained in:
		
							parent
							
								
									ffeb18d0e5
								
							
						
					
					
						commit
						419bfd416c
					
				
					 18 changed files with 1443 additions and 603 deletions
				
			
		|  | @ -1,21 +1,21 @@ | |||
| import { ImmutableStore, Store, UIEventSource } from "../../Logic/UIEventSource"; | ||||
| import type { Map as MlMap } from "maplibre-gl"; | ||||
| import { GeoJSONSource, Marker } from "maplibre-gl"; | ||||
| import { ShowDataLayerOptions } from "./ShowDataLayerOptions"; | ||||
| import { GeoOperations } from "../../Logic/GeoOperations"; | ||||
| import LayerConfig from "../../Models/ThemeConfig/LayerConfig"; | ||||
| import PointRenderingConfig from "../../Models/ThemeConfig/PointRenderingConfig"; | ||||
| import { OsmTags } from "../../Models/OsmFeature"; | ||||
| import { FeatureSource, FeatureSourceForLayer } from "../../Logic/FeatureSource/FeatureSource"; | ||||
| import { BBox } from "../../Logic/BBox"; | ||||
| import { Feature, Point } from "geojson"; | ||||
| import LineRenderingConfig from "../../Models/ThemeConfig/LineRenderingConfig"; | ||||
| import { Utils } from "../../Utils"; | ||||
| import * as range_layer from "../../../assets/layers/range/range.json"; | ||||
| import { LayerConfigJson } from "../../Models/ThemeConfig/Json/LayerConfigJson"; | ||||
| import PerLayerFeatureSourceSplitter from "../../Logic/FeatureSource/PerLayerFeatureSourceSplitter"; | ||||
| import FilteredLayer from "../../Models/FilteredLayer"; | ||||
| import SimpleFeatureSource from "../../Logic/FeatureSource/Sources/SimpleFeatureSource"; | ||||
| import { ImmutableStore, Store, UIEventSource } from "../../Logic/UIEventSource" | ||||
| import type { Map as MlMap } from "maplibre-gl" | ||||
| import { GeoJSONSource, Marker } from "maplibre-gl" | ||||
| import { ShowDataLayerOptions } from "./ShowDataLayerOptions" | ||||
| import { GeoOperations } from "../../Logic/GeoOperations" | ||||
| import LayerConfig from "../../Models/ThemeConfig/LayerConfig" | ||||
| import PointRenderingConfig from "../../Models/ThemeConfig/PointRenderingConfig" | ||||
| import { OsmTags } from "../../Models/OsmFeature" | ||||
| import { FeatureSource, FeatureSourceForLayer } from "../../Logic/FeatureSource/FeatureSource" | ||||
| import { BBox } from "../../Logic/BBox" | ||||
| import { Feature, Point } from "geojson" | ||||
| import LineRenderingConfig from "../../Models/ThemeConfig/LineRenderingConfig" | ||||
| import { Utils } from "../../Utils" | ||||
| import * as range_layer from "../../../assets/layers/range/range.json" | ||||
| import { LayerConfigJson } from "../../Models/ThemeConfig/Json/LayerConfigJson" | ||||
| import PerLayerFeatureSourceSplitter from "../../Logic/FeatureSource/PerLayerFeatureSourceSplitter" | ||||
| import FilteredLayer from "../../Models/FilteredLayer" | ||||
| import SimpleFeatureSource from "../../Logic/FeatureSource/Sources/SimpleFeatureSource" | ||||
| 
 | ||||
| class PointRenderingLayer { | ||||
|     private readonly _config: PointRenderingConfig | ||||
|  | @ -284,18 +284,19 @@ class LineRenderingLayer { | |||
|             // Already up to date
 | ||||
|             return | ||||
|         } | ||||
|         {// Add source to the map or update the features
 | ||||
|         { | ||||
|             // Add source to the map or update the features
 | ||||
|             if (src === undefined) { | ||||
|                 this.currentSourceData = features; | ||||
|                 this.currentSourceData = features | ||||
|                 map.addSource(this._layername, { | ||||
|                     type: "geojson", | ||||
|                     data: { | ||||
|                         type: "FeatureCollection", | ||||
|                         features | ||||
|                         features, | ||||
|                     }, | ||||
|                     promoteId: "id" | ||||
|                 }); | ||||
|                 const linelayer = this._layername + "_line"; | ||||
|                     promoteId: "id", | ||||
|                 }) | ||||
|                 const linelayer = this._layername + "_line" | ||||
|                 map.addLayer({ | ||||
|                     source: this._layername, | ||||
|                     id: linelayer, | ||||
|  | @ -304,12 +305,12 @@ class LineRenderingLayer { | |||
|                         "line-color": ["feature-state", "color"], | ||||
|                         "line-opacity": ["feature-state", "color-opacity"], | ||||
|                         "line-width": ["feature-state", "width"], | ||||
|                         "line-offset": ["feature-state", "offset"] | ||||
|                         "line-offset": ["feature-state", "offset"], | ||||
|                     }, | ||||
|                     layout: { | ||||
|                         "line-cap": "round" | ||||
|                     } | ||||
|                 }); | ||||
|                         "line-cap": "round", | ||||
|                     }, | ||||
|                 }) | ||||
| 
 | ||||
|                 for (const feature of features) { | ||||
|                     map.setFeatureState( | ||||
|  | @ -320,10 +321,10 @@ class LineRenderingLayer { | |||
| 
 | ||||
|                 map.on("click", linelayer, (e) => { | ||||
|                     // line-layer-listener
 | ||||
|                     e.originalEvent["consumed"] = true; | ||||
|                     this._onClick(e.features[0]); | ||||
|                 }); | ||||
|                 const polylayer = this._layername + "_polygon"; | ||||
|                     e.originalEvent["consumed"] = true | ||||
|                     this._onClick(e.features[0]) | ||||
|                 }) | ||||
|                 const polylayer = this._layername + "_polygon" | ||||
| 
 | ||||
|                 map.addLayer({ | ||||
|                     source: this._layername, | ||||
|  | @ -333,41 +334,41 @@ class LineRenderingLayer { | |||
|                     layout: {}, | ||||
|                     paint: { | ||||
|                         "fill-color": ["feature-state", "fillColor"], | ||||
|                         "fill-opacity": ["feature-state", "fillColor-opacity"] | ||||
|                     } | ||||
|                 }); | ||||
|                         "fill-opacity": ["feature-state", "fillColor-opacity"], | ||||
|                     }, | ||||
|                 }) | ||||
|                 if (this._onClick) { | ||||
|                     map.on("click", polylayer, (e) => { | ||||
|                         // polygon-layer-listener
 | ||||
|                         if (e.originalEvent["consumed"]) { | ||||
|                             // This is a polygon beneath a marker, we can ignore it
 | ||||
|                             return; | ||||
|                             return | ||||
|                         } | ||||
|                         e.originalEvent["consumed"] = true; | ||||
|                         console.log("Got features:", e.features, e); | ||||
|                         this._onClick(e.features[0]); | ||||
|                     }); | ||||
|                         e.originalEvent["consumed"] = true | ||||
|                         console.log("Got features:", e.features, e) | ||||
|                         this._onClick(e.features[0]) | ||||
|                     }) | ||||
|                 } | ||||
| 
 | ||||
|                 this._visibility?.addCallbackAndRunD((visible) => { | ||||
|                     try { | ||||
|                         map.setLayoutProperty(linelayer, "visibility", visible ? "visible" : "none"); | ||||
|                         map.setLayoutProperty(polylayer, "visibility", visible ? "visible" : "none"); | ||||
|                         map.setLayoutProperty(linelayer, "visibility", visible ? "visible" : "none") | ||||
|                         map.setLayoutProperty(polylayer, "visibility", visible ? "visible" : "none") | ||||
|                     } catch (e) { | ||||
|                         console.warn( | ||||
|                             "Error while setting visibility of layers ", | ||||
|                             linelayer, | ||||
|                             polylayer, | ||||
|                             e | ||||
|                         ); | ||||
|                         ) | ||||
|                     } | ||||
|                 }); | ||||
|                 }) | ||||
|             } else { | ||||
|                 this.currentSourceData = features; | ||||
|                 this.currentSourceData = features | ||||
|                 src.setData({ | ||||
|                     type: "FeatureCollection", | ||||
|                     features: this.currentSourceData | ||||
|                 }); | ||||
|                     features: this.currentSourceData, | ||||
|                 }) | ||||
|             } | ||||
|         } | ||||
|         for (let i = 0; i < features.length; i++) { | ||||
|  | @ -400,7 +401,7 @@ class LineRenderingLayer { | |||
|                 const tags = this._fetchStore(id) | ||||
|                 this._listenerInstalledOn.add(id) | ||||
|                 tags.addCallbackAndRunD((properties) => { | ||||
|                     if(!map.getLayer(this._layername)){ | ||||
|                     if (!map.getLayer(this._layername)) { | ||||
|                         return | ||||
|                     } | ||||
|                     map.setFeatureState( | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue