forked from MapComplete/MapComplete
		
	Fix: attempts to stabilize
This commit is contained in:
		
							parent
							
								
									686ad70511
								
							
						
					
					
						commit
						ae84207555
					
				
					 4 changed files with 31 additions and 24 deletions
				
			
		|  | @ -24,13 +24,13 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap { | |||
|         "dragRotate", | ||||
|         "dragPan", | ||||
|         "keyboard", | ||||
|         "touchZoomRotate", | ||||
|         "touchZoomRotate" | ||||
|     ] | ||||
|     private static maplibre_zoom_handlers = [ | ||||
|         "scrollZoom", | ||||
|         "boxZoom", | ||||
|         "doubleClickZoom", | ||||
|         "touchZoomRotate", | ||||
|         "touchZoomRotate" | ||||
|     ] | ||||
|     readonly location: UIEventSource<{ lon: number; lat: number }> | ||||
|     private readonly isFlying = new UIEventSource(false) | ||||
|  | @ -44,14 +44,14 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap { | |||
|     readonly lastClickLocation: Store< | ||||
|         | undefined | ||||
|         | { | ||||
|               lon: number | ||||
|               lat: number | ||||
|               mode: "left" | "right" | "middle" | ||||
|               /** | ||||
|                * The nearest feature from a MapComplete layer | ||||
|                */ | ||||
|               nearestFeature?: Feature | ||||
|           } | ||||
|         lon: number | ||||
|         lat: number | ||||
|         mode: "left" | "right" | "middle" | ||||
|         /** | ||||
|          * The nearest feature from a MapComplete layer | ||||
|          */ | ||||
|         nearestFeature?: Feature | ||||
|     } | ||||
|     > | ||||
|     readonly minzoom: UIEventSource<number> | ||||
|     readonly maxzoom: UIEventSource<number> | ||||
|  | @ -141,7 +141,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap { | |||
|                 const features = map | ||||
|                     .queryRenderedFeatures([ | ||||
|                         [point.x - buffer, point.y - buffer], | ||||
|                         [point.x + buffer, point.y + buffer], | ||||
|                         [point.x + buffer, point.y + buffer] | ||||
|                     ]) | ||||
|                     .filter((f) => f.source.startsWith("mapcomplete_")) | ||||
|                 if (features.length === 1) { | ||||
|  | @ -281,9 +281,9 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap { | |||
|         return { | ||||
|             map: mlmap, | ||||
|             ui: new SvelteUIElement(MaplibreMap, { | ||||
|                 map: mlmap, | ||||
|                 map: mlmap | ||||
|             }), | ||||
|             mapproperties: new MapLibreAdaptor(mlmap), | ||||
|             mapproperties: new MapLibreAdaptor(mlmap) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  | @ -347,7 +347,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap { | |||
|     ) { | ||||
|         const event = { | ||||
|             date: new Date(), | ||||
|             key: key, | ||||
|             key: key | ||||
|         } | ||||
| 
 | ||||
|         for (let i = 0; i < this._onKeyNavigation.length; i++) { | ||||
|  | @ -536,7 +536,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap { | |||
|         const bounds = map.getBounds() | ||||
|         const bbox = new BBox([ | ||||
|             [bounds.getEast(), bounds.getNorth()], | ||||
|             [bounds.getWest(), bounds.getSouth()], | ||||
|             [bounds.getWest(), bounds.getSouth()] | ||||
|         ]) | ||||
|         if (this.bounds.data === undefined || !isSetup) { | ||||
|             this.bounds.setData(bbox) | ||||
|  | @ -611,8 +611,11 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap { | |||
|         if (!map) { | ||||
|             return | ||||
|         } | ||||
|         console.log("Bounds are", bbox?.asGeometry()) | ||||
|         if (bbox) { | ||||
|             map?.setMaxBounds(bbox.toLngLat()) | ||||
|             if (GeoOperations.surfaceAreaInSqMeters(bbox.asGeojsonCached()) > 1) { | ||||
|                 map?.setMaxBounds(bbox.toLngLat()) | ||||
|             } | ||||
|         } else { | ||||
|             map?.setMaxBounds(null) | ||||
|         } | ||||
|  | @ -730,14 +733,14 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap { | |||
|                 type: "raster-dem", | ||||
|                 url: | ||||
|                     "https://api.maptiler.com/tiles/terrain-rgb/tiles.json?key=" + | ||||
|                     Constants.maptilerApiKey, | ||||
|                     Constants.maptilerApiKey | ||||
|             }) | ||||
|             try { | ||||
|                 while (!map?.isStyleLoaded()) { | ||||
|                     await Utils.waitFor(250) | ||||
|                 } | ||||
|                 map.setTerrain({ | ||||
|                     source: id, | ||||
|                     source: id | ||||
|                 }) | ||||
|             } catch (e) { | ||||
|                 console.error(e) | ||||
|  | @ -762,7 +765,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap { | |||
|         if (this.scaleControl === undefined) { | ||||
|             this.scaleControl = new ScaleControl({ | ||||
|                 maxWidth: 100, | ||||
|                 unit: "metric", | ||||
|                 unit: "metric" | ||||
|             }) | ||||
|         } | ||||
|         if (!map.hasControl(this.scaleControl)) { | ||||
|  | @ -775,7 +778,7 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap { | |||
|         window.requestAnimationFrame(() => { | ||||
|             this._maplibreMap.data?.flyTo({ | ||||
|                 zoom, | ||||
|                 center: [lon, lat], | ||||
|                 center: [lon, lat] | ||||
|             }) | ||||
|         }) | ||||
|     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue