diff --git a/eotimeseriesviewer/main.py b/eotimeseriesviewer/main.py
index 8aa0953e0b4729ee7915617151e8c484b05fd30b..09baa7d1c47a2d271a65cf899e0de8afa316fd69 100644
--- a/eotimeseriesviewer/main.py
+++ b/eotimeseriesviewer/main.py
@@ -367,11 +367,11 @@ class TimeSeriesViewer(QgisInterface, QObject):
         self.spatialTemporalVis.sigMapSizeChanged.connect(self.ui.dockMapViews.setMapSize)
         self.spatialTemporalVis.sigSpatialExtentChanged.connect(self.timeSeries().setCurrentSpatialExtent)
         self.spatialTemporalVis.sigVisibleDatesChanged.connect(self.timeSeries().setCurrentDates)
-        self.spectralTemporalVis.sigMoveToTSD.connect(self.showTimeSeriesDate)
+        self.spectralTemporalVis.sigMoveToTSD.connect(self.setCurrentDate)
 
         tstv = self.ui.dockTimeSeries.timeSeriesTreeView
         assert isinstance(tstv, TimeSeriesTreeView)
-        tstv.sigMoveToDateRequest.connect(self.showTimeSeriesDate)
+        tstv.sigMoveToDateRequest.connect(self.setCurrentDate)
 
         self.mCurrentMapLocation = None
         self.mCurrentMapSpectraLoading = 'TOP'
@@ -643,7 +643,7 @@ class TimeSeriesViewer(QgisInterface, QObject):
         return self.ui.actionZoomOut
 
 
-    def showTimeSeriesDate(self, tsd:TimeSeriesDate):
+    def setCurrentDate(self, tsd:TimeSeriesDate):
         """
         Moves the viewport of the scroll window to a specific TimeSeriesDate
         :param tsd:  TimeSeriesDate
@@ -978,30 +978,6 @@ class TimeSeriesViewer(QgisInterface, QObject):
         """
         return self.spatialTemporalVis.MVC[:]
 
-    def zoomTo(self, key):
-        if key == 'zoomMaxExtent':
-            ext = self.mTimeSeries.maxSpatialExtent(self.ui.dockRendering.crs())
-        elif key == 'zoomPixelScale':
-
-            extent = self.spatialTemporalVis.spatialExtent()
-            #calculate in web-mercator for metric distances
-            crs = self.spatialTemporalVis.crs()
-            crsWMC = QgsCoordinateReferenceSystem('EPSG:3857')
-
-            extentWMC = extent.toCrs(crsWMC)
-            pxSize = max(self.mTimeSeries.pixelSizes(), key= lambda s :s.width())
-            canvasSize = self.spatialTemporalVis.mapSize()
-            f = 0.05
-            width = f * canvasSize.width() * pxSize.width()  # width in map units
-            height = f * canvasSize.height() * pxSize.height()
-            ext = SpatialExtent(crsWMC, 0, 0, width, height)
-            ext.setCenter(extentWMC.center())
-            #return to original CRS
-            ext = ext.toCrs(crs)
-        else:
-            raise NotImplementedError(key)
-        self.spatialTemporalVis.setSpatialExtent(ext)
-
 
     def icon(self)->QIcon:
         """
diff --git a/eotimeseriesviewer/mapvisualization.py b/eotimeseriesviewer/mapvisualization.py
index 41b53abca97606b030f5330e0ef403d6c7e50916..c5743cc58ab544feef6fab48a4d92bc69832529c 100644
--- a/eotimeseriesviewer/mapvisualization.py
+++ b/eotimeseriesviewer/mapvisualization.py
@@ -1689,6 +1689,13 @@ class SpatialTemporalVisualization(QObject):
         """
         return [m for m in self.mapCanvases() if m.isVisibleToViewport()]
 
+    def visibleTSDs(self):
+        """
+        Returns an ordered list of visible time series dates.
+        :return: [list-of-TimeSeriesDates]
+        """
+        return sorted(list(self.mVisibleDates))
+
     def onVisibleMapsChanged(self, *args):
 
         visibleDates = set([m.tsd() for m in self.visibleMaps()])
@@ -1830,7 +1837,6 @@ class SpatialTemporalVisualization(QObject):
         self.MVC.setVectorLayer(lyr)
 
 
-
     def setMapSize(self, size:QSize):
         """
         Sets the MapCanvas size.
@@ -1839,6 +1845,12 @@ class SpatialTemporalVisualization(QObject):
 
         assert isinstance(size, QSize)
         self.mSize = size
+
+        currentTSD = None
+        visible = self.visibleTSDs()
+        if len(visible) > 0:
+            currentTSD = visible[int(len(visible) / 2)]
+
         from eotimeseriesviewer.mapcanvas import MapCanvas
         for mapCanvas in self.mMapCanvases:
             assert isinstance(mapCanvas, MapCanvas)
@@ -1846,6 +1858,9 @@ class SpatialTemporalVisualization(QObject):
         self.sigMapSizeChanged.emit(self.mSize)
         self.adjustScrollArea()
 
+        if isinstance(currentTSD, TimeSeriesDate):
+            self.navigateToTSD(currentTSD)
+
     def mapSize(self)->QSize:
         """
         Returns the MapCanvas size
diff --git a/eotimeseriesviewer/ui/timeseriesviewer.ui b/eotimeseriesviewer/ui/timeseriesviewer.ui
index 89de05f9660c5e4e64e9397f6b64b89353f42f2d..f0ba09fa89c2959a5770827aabeeb3d9dbc08916 100644
--- a/eotimeseriesviewer/ui/timeseriesviewer.ui
+++ b/eotimeseriesviewer/ui/timeseriesviewer.ui
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>887</width>
+    <width>877</width>
     <height>475</height>
    </rect>
   </property>
@@ -48,7 +48,7 @@
    <property name="focusPolicy">
     <enum>Qt::NoFocus</enum>
    </property>
-   <layout class="QVBoxLayout" name="verticalLayout_3">
+   <layout class="QVBoxLayout" name="verticalLayout">
     <property name="spacing">
      <number>1</number>
     </property>
@@ -77,7 +77,7 @@
     <item>
      <widget class="MapViewScrollArea" name="scrollAreaSubsets">
       <property name="sizePolicy">
-       <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+       <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
         <horstretch>3</horstretch>
         <verstretch>3</verstretch>
        </sizepolicy>
@@ -105,7 +105,7 @@
         <rect>
          <x>0</x>
          <y>0</y>
-         <width>885</width>
+         <width>875</width>
          <height>387</height>
         </rect>
        </property>
@@ -152,7 +152,7 @@
     <rect>
      <x>0</x>
      <y>0</y>
-     <width>887</width>
+     <width>877</width>
      <height>21</height>
     </rect>
    </property>
diff --git a/tests/test_main.py b/tests/test_main.py
index f0f6abd68c5fa176d23f6810dddf26c41aea67f7..fbd9e4d8516bfda7aae9bf446fef7cb6e99258cf 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -80,6 +80,17 @@ class TestInit(TestCase):
 
             self.assertIn(expectation, dict(metadata), message)
 
+    def test_TimeSeriesViewerNoSource(self):
+
+        from eotimeseriesviewer.main import TimeSeriesViewer
+
+        TSV = TimeSeriesViewer()
+        TSV.show()
+
+        self.assertIsInstance(TSV, TimeSeriesViewer)
+        if SHOW_GUI:
+            QGIS_APP.exec_()
+            s = ""
 
 
     def test_TimeSeriesViewer(self):
@@ -95,7 +106,7 @@ class TestInit(TestCase):
             QCoreApplication.processEvents()
 
         tsd = TSV.timeSeries()[-1]
-        TSV.showTimeSeriesDate(tsd)
+        TSV.setCurrentDate(tsd)
         if SHOW_GUI:
             QGIS_APP.exec_()
 
@@ -151,17 +162,7 @@ class TestInit(TestCase):
         if SHOW_GUI:
             QGIS_APP.exec_()
 
-    def test_TimeSeriesViewerNoSource(self):
-
-        from eotimeseriesviewer.main import TimeSeriesViewer
-
-        TSV = TimeSeriesViewer()
-        TSV.show()
 
-        self.assertIsInstance(TSV, TimeSeriesViewer)
-        if SHOW_GUI:
-            QGIS_APP.exec_()
-            s = ""
 
 
 if __name__ == '__main__':