forked from MapComplete/MapComplete
		
	Finish importer, add applicable import layers to every theme by default
This commit is contained in:
		
							parent
							
								
									3402ac0954
								
							
						
					
					
						commit
						ca1490902c
					
				
					 41 changed files with 1559 additions and 898 deletions
				
			
		|  | @ -29,11 +29,11 @@ export default class FilteringFeatureSource implements FeatureSourceForLayer, Ti | |||
|         }, | ||||
|         tileIndex, | ||||
|         upstream: FeatureSourceForLayer, | ||||
|         metataggingUpdated: UIEventSource<any> | ||||
|         metataggingUpdated?: UIEventSource<any> | ||||
|     ) { | ||||
|         this.name = "FilteringFeatureSource(" + upstream.name + ")" | ||||
|         this.tileIndex = tileIndex | ||||
|         this.bbox = BBox.fromTileIndex(tileIndex) | ||||
|         this.bbox = tileIndex === undefined ? undefined : BBox.fromTileIndex(tileIndex) | ||||
|         this.upstream = upstream | ||||
|         this.state = state | ||||
| 
 | ||||
|  | @ -55,7 +55,7 @@ export default class FilteringFeatureSource implements FeatureSourceForLayer, Ti | |||
|             } | ||||
|         }) | ||||
|          | ||||
|         metataggingUpdated.addCallback(_ => { | ||||
|         metataggingUpdated?.addCallback(_ => { | ||||
|             self._is_dirty.setData(true) | ||||
|         }) | ||||
| 
 | ||||
|  | @ -63,6 +63,7 @@ export default class FilteringFeatureSource implements FeatureSourceForLayer, Ti | |||
|     } | ||||
| 
 | ||||
|     private update() { | ||||
|         console.log("FIltering", this.upstream.name) | ||||
|         const self = this; | ||||
|         const layer = this.upstream.layer; | ||||
|         const features: { feature: any; freshness: Date }[] = (this.upstream.features.data ?? []); | ||||
|  |  | |||
|  | @ -28,7 +28,7 @@ export default class GeoJsonSource implements FeatureSourceForLayer, Tiled { | |||
|     private readonly featureIdBlacklist?: UIEventSource<Set<string>> | ||||
| 
 | ||||
|     public constructor(flayer: FilteredLayer, | ||||
|                        zxy?: [number, number, number], | ||||
|                        zxy?: [number, number, number] | BBox, | ||||
|                        options?: { | ||||
|                            featureIdBlacklist?: UIEventSource<Set<string>> | ||||
|                        }) { | ||||
|  | @ -41,23 +41,32 @@ export default class GeoJsonSource implements FeatureSourceForLayer, Tiled { | |||
|         this.featureIdBlacklist = options?.featureIdBlacklist | ||||
|         let url = flayer.layerDef.source.geojsonSource.replace("{layer}", flayer.layerDef.id); | ||||
|         if (zxy !== undefined) { | ||||
|             const [z, x, y] = zxy; | ||||
|             let tile_bbox = BBox.fromTile(z, x, y) | ||||
|             let tile_bbox: BBox; | ||||
|             if (zxy instanceof BBox) { | ||||
|                 tile_bbox = zxy; | ||||
|             } else { | ||||
|                 const [z, x, y] = zxy; | ||||
|                 tile_bbox = BBox.fromTile(z, x, y); | ||||
| 
 | ||||
|                 this.tileIndex = Tiles.tile_index(z, x, y) | ||||
|                 this.bbox = BBox.fromTile(z, x, y) | ||||
|                 url = url | ||||
|                     .replace('{z}', "" + z) | ||||
|                     .replace('{x}', "" + x) | ||||
|                     .replace('{y}', "" + y) | ||||
|             } | ||||
|             let bounds: { minLat: number, maxLat: number, minLon: number, maxLon: number } = tile_bbox | ||||
|             if (this.layer.layerDef.source.mercatorCrs) { | ||||
|                 bounds = tile_bbox.toMercator() | ||||
|             } | ||||
| 
 | ||||
|             url = url | ||||
|                 .replace('{z}', "" + z) | ||||
|                 .replace('{x}', "" + x) | ||||
|                 .replace('{y}', "" + y) | ||||
|                 .replace('{y_min}', "" + bounds.minLat) | ||||
|                 .replace('{y_max}', "" + bounds.maxLat) | ||||
|                 .replace('{x_min}', "" + bounds.minLon) | ||||
|                 .replace('{x_max}', "" + bounds.maxLon) | ||||
| 
 | ||||
|             this.tileIndex = Tiles.tile_index(z, x, y) | ||||
|             this.bbox = BBox.fromTile(z, x, y) | ||||
| 
 | ||||
|         } else { | ||||
|             this.tileIndex = Tiles.tile_index(0, 0, 0) | ||||
|             this.bbox = BBox.global; | ||||
|  | @ -83,7 +92,7 @@ export default class GeoJsonSource implements FeatureSourceForLayer, Tiled { | |||
|                 if (self.layer.layerDef.source.mercatorCrs) { | ||||
|                     json = GeoOperations.GeoJsonToWGS84(json) | ||||
|                 } | ||||
|                  | ||||
| 
 | ||||
|                 const time = new Date(); | ||||
|                 const newFeatures: { feature: any, freshness: Date } [] = [] | ||||
|                 let i = 0; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue