Mercurial > gemma
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();