Skip to content
Snippets Groups Projects
Commit 124c6fe4 authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

Remember zoom and pan between browser sessions

parent 0d4c4436
No related branches found
No related tags found
No related merge requests found
......@@ -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)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment