diff --git a/spatial/static/spatial/js/gridmap.js b/spatial/static/spatial/js/gridmap.js index 10fb6a7663d436724a549974f5cf12e370ce5896..2f0fadf41e541615544d648e06d8431e21f698b9 100644 --- a/spatial/static/spatial/js/gridmap.js +++ b/spatial/static/spatial/js/gridmap.js @@ -193,13 +193,30 @@ msLoadMap(): Unable to access file. (/disks/data01/mapserver/wms/SEPTREFFUM/SEPT setCurrentDate(todayLayerIndex); switchLayer(todayLayerIndex); - // Zoom and center the map to fit to the extent of the WMS layer. - // If the current WMS layer has a lot of no-data / invisible values surrounding the - // visible values, the zoom might appear to be a bit too far out - let currentWMSLayer = WMSLayersDateBucket[currentTimestamp][currentParameter] - let WMSExtent = currentWMSLayer.EX_GeographicBoundingBox; - let extent = ol.proj.transformExtent(WMSExtent, getCurrentVisibleOLLayer().getSource().getProjection().getCode(), map.getView().getProjection()); - map.getView().fit(extent, map.getSize()); + var storedMapSettings = getLocalSettings([ + "gridmap.longitude", + "gridmap.latitude", + "gridmap.zoomLevel"], + true); + if(storedMapSettings != null) + { + longitude = parseFloat(storedMapSettings["gridmap.longitude"]); + latitude = parseFloat(storedMapSettings["gridmap.latitude"]); + let lonLat=[longitude,latitude]; + zoomLevel = parseInt(storedMapSettings["gridmap.zoomLevel"]); + map.getView().setCenter(ol.proj.transform(lonLat, 'EPSG:4326', map.getView().getProjection().getCode())); + map.getView().setZoom(zoomLevel); + } + else + { + // Zoom and center the map to fit to the extent of the WMS layer. + // If the current WMS layer has a lot of no-data / invisible values surrounding the + // visible values, the zoom might appear to be a bit too far out + let currentWMSLayer = WMSLayersDateBucket[currentTimestamp][currentParameter] + let WMSExtent = currentWMSLayer.EX_GeographicBoundingBox; + let extent = ol.proj.transformExtent(WMSExtent, getCurrentVisibleOLLayer().getSource().getProjection().getCode(), map.getView().getProjection()); + map.getView().fit(extent, map.getSize()); + } popup = new ol.Overlay({ element: document.getElementById('popup') @@ -208,6 +225,17 @@ msLoadMap(): Unable to access file. (/disks/data01/mapserver/wms/SEPTREFFUM/SEPT map.on('singleclick', displayQueryResult); + map.on('moveend', function(evt) { + // Store map settings + var centerCoordinate = ol.proj.transform(map.getView().getCenter(), map.getView().getProjection().getCode(),'EPSG:4326'); + var settings = { + "gridmap.longitude": centerCoordinate[0], + "gridmap.latitude": centerCoordinate[1], + "gridmap.zoomLevel": map.getView().getZoom() + }; + storeLocalSettings(settings); + }); + // Add the parameter selector let radioHTML = ""; for(let i=0;i<parameters.length;i++) @@ -250,6 +278,7 @@ async function displayQueryResult(evt) let response = await fetch(url); let responseXML = await response.text(); + console.info(responseXML); // User clicked outside of layer extent if(responseXML.trim().length == 0) {