diff --git a/src/router/storeSync/__tests__/abstractParamConfig.class.spec.js b/src/router/storeSync/__tests__/abstractParamConfig.class.spec.js index be062506c..2537bbd46 100644 --- a/src/router/storeSync/__tests__/abstractParamConfig.class.spec.js +++ b/src/router/storeSync/__tests__/abstractParamConfig.class.spec.js @@ -80,7 +80,7 @@ describe('Test all AbstractParamConfig class functionalities', () => { }) expect(testInstance.readValueFromQuery({ test: 'true' })).to.be.true expect(testInstance.readValueFromQuery({ test: 'false' })).to.be.false - expect(testInstance.readValueFromQuery({ test: '' })).to.be.false + expect(testInstance.readValueFromQuery({ test: '' })).to.be.true // null value means the param without value, we want it to be true expect(testInstance.readValueFromQuery({ test: null })).to.be.true expect(testInstance.readValueFromQuery({})).to.be.undefined @@ -135,7 +135,7 @@ describe('Test all AbstractParamConfig class functionalities', () => { }) expect(testInstance.readValueFromQuery({ test: 'true' })).to.be.true expect(testInstance.readValueFromQuery({ test: 'false' })).to.be.false - expect(testInstance.readValueFromQuery({ test: '' })).to.be.false + expect(testInstance.readValueFromQuery({ test: '' })).to.be.true // null value means the param without value, we want it to be true expect(testInstance.readValueFromQuery({ test: null })).to.be.true expect(testInstance.readValueFromQuery({})).to.be.true diff --git a/src/store/plugins/geolocation-management.plugin.js b/src/store/plugins/geolocation-management.plugin.js index aad03cecb..ae99b96ba 100644 --- a/src/store/plugins/geolocation-management.plugin.js +++ b/src/store/plugins/geolocation-management.plugin.js @@ -55,9 +55,22 @@ const handlePositionAndDispatchToStore = (position, store) => { accuracy: position.coords.accuracy, ...dispatcher, }) - // if tracking is active, we center the view of the map on the position received + // if tracking is active, we center the view of the map on the position received and change + // to the proper zoom if (store.state.geolocation.tracking) { setCenterIfInBounds(store, positionProjected) + // set zoom level if needed + let zoomLevel = STANDARD_ZOOM_LEVEL_1_25000_MAP + if (store.state.position.projection instanceof CustomCoordinateSystem) { + zoomLevel = + store.state.position.projection.transformStandardZoomLevelToCustom(zoomLevel) + } + if (store.state.position.zoom != zoomLevel) { + store.dispatch('setZoom', { + zoom: zoomLevel, + ...dispatcher, + }) + } } } @@ -152,16 +165,6 @@ const activeGeolocation = (store, state, options = {}) => { // handle current position handlePositionAndDispatchToStore(position, store) - - // set zoom level - let zoomLevel = STANDARD_ZOOM_LEVEL_1_25000_MAP - if (state.position.projection instanceof CustomCoordinateSystem) { - zoomLevel = state.position.projection.transformStandardZoomLevelToCustom(zoomLevel) - } - store.dispatch('setZoom', { - zoom: zoomLevel, - ...dispatcher, - }) }, (error) => handlePositionError(error, store, state, { reactivate: true }), {