changeset 2186:d0498088894f

map_store: extracted moveMap, etd moveToBoundingBox, refactored moveToExtent
author Thomas Junk <thomas.junk@intevation.de>
date Mon, 11 Feb 2019 16:49:18 +0100
parents 9212b3d60f2a
children 7c83b5277c1c
files client/src/store/map.js
diffstat 1 files changed, 14 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/client/src/store/map.js	Mon Feb 11 16:33:19 2019 +0100
+++ b/client/src/store/map.js	Mon Feb 11 16:49:18 2019 +0100
@@ -51,6 +51,14 @@
   CUTTOOL: "Cut Tool"
 };
 
+const moveMap = ({ view, extent, zoom, preventZoomOut }) => {
+  const currentZoom = view.getZoom();
+  view.fit(extent, {
+    maxZoom: preventZoomOut ? Math.max(zoom, currentZoom) : zoom,
+    duration: 700
+  });
+};
+
 // initial state
 const init = () => {
   return {
@@ -500,15 +508,16 @@
     cutTool: (state, cutTool) => {
       state.cutTool = cutTool;
     },
+    moveToBoundingBox: (state, { boundingBox, zoom, preventZoomOut }) => {
+      const extent = transformExtent(boundingBox, "EPSG:4326", "EPSG:3857");
+      let view = state.openLayersMap.getView();
+      moveMap({ view, extent, zoom, preventZoomOut });
+    },
     moveToExtent: (state, { feature, zoom, preventZoomOut }) => {
       const boundingBox = bbox(feature.geometry);
       const extent = transformExtent(boundingBox, "EPSG:4326", "EPSG:3857");
       let view = state.openLayersMap.getView();
-      const currentZoom = view.getZoom();
-      view.fit(extent, {
-        maxZoom: preventZoomOut ? Math.max(zoom, currentZoom) : zoom,
-        duration: 700
-      });
+      moveMap({ view, extent, zoom, preventZoomOut });
     },
     moveMap: (state, { coordinates, zoom, preventZoomOut }) => {
       let view = state.openLayersMap.getView();