From 44bd2721972f33d666fa1bac1cc1ad3f93b1bd0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e?= <tpoussard@neogeo.fr> Date: Thu, 21 Jul 2022 16:16:20 +0200 Subject: [PATCH] initiate maps with maxZoom from project config --- src/services/map-service.js | 16 ++++++++++------ src/store/modules/map.store.js | 3 ++- src/views/Feature/FeatureDetail.vue | 1 + src/views/Feature/FeatureEdit.vue | 1 + src/views/Project/FeaturesListAndMap.vue | 1 + 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/services/map-service.js b/src/services/map-service.js index 0bb14fa3..c64c318d 100644 --- a/src/services/map-service.js +++ b/src/services/map-service.js @@ -51,6 +51,7 @@ const mapService = { lng, mapDefaultViewCenter, mapDefaultViewZoom, + maxZoom, zoom, zoomControl = true, interactions = { doubleClickZoom: false, mouseWheelZoom: false, dragPan: true }, @@ -60,7 +61,7 @@ const mapService = { el.innerHTML = ''; } - this.map = new Map({ + const mapOptions = { layers: [], target: el, controls: [ @@ -70,14 +71,17 @@ const mapService = { })], interactions: defaults(interactions), view: new View({ - center: transform([ - !lng ? mapDefaultViewCenter[1] : lng, - !lat ? mapDefaultViewCenter[0] : lat, + center: transform([ //* since 0 is considered false, check for number instead of just defined (though boolean will pass through) + Number(lng) ? lng : mapDefaultViewCenter[1], + Number(lat) ? lat : mapDefaultViewCenter[0], ], 'EPSG:4326', 'EPSG:3857'), - zoom: !zoom ? mapDefaultViewZoom : zoom + zoom: Number(mapDefaultViewZoom) ? mapDefaultViewZoom : zoom, + maxZoom }), - }); + }; + + this.map = new Map(mapOptions); if (zoomControl) { this.map.addControl(new Zoom({ zoomInTipLabel: 'Zoomer', zoomOutTipLabel: 'Dézoomer' })); diff --git a/src/store/modules/map.store.js b/src/store/modules/map.store.js index a8b3f37b..3ae79943 100644 --- a/src/store/modules/map.store.js +++ b/src/store/modules/map.store.js @@ -104,12 +104,13 @@ const map = { }); }, - INITIATE_MAP({ commit }, el) { //todo: since this function is not anymore called in different components, it would better to move it in project_details.vue + INITIATE_MAP({ commit, rootState }, el) { //todo: since this function is not anymore called in different components, it would better to move it in project_details.vue const mapDefaultViewCenter = [46, 2]; // defaultMapView.center; const mapDefaultViewZoom = 5; // defaultMapView.zoom; mapService.createMap(el, { mapDefaultViewCenter: mapDefaultViewCenter, mapDefaultViewZoom: mapDefaultViewZoom, + maxZoom: rootState.projects.project.map_max_zoom_level, }); const map = { ...mapService.getMap() }; commit('SET_MAP', map); diff --git a/src/views/Feature/FeatureDetail.vue b/src/views/Feature/FeatureDetail.vue index dc39b0e4..6926b849 100644 --- a/src/views/Feature/FeatureDetail.vue +++ b/src/views/Feature/FeatureDetail.vue @@ -354,6 +354,7 @@ export default { this.map = mapService.createMap(this.$refs.map, { mapDefaultViewCenter, mapDefaultViewZoom, + maxZoom: this.project.map_max_zoom_level, interactions : { doubleClickZoom :false, mouseWheelZoom: false, diff --git a/src/views/Feature/FeatureEdit.vue b/src/views/Feature/FeatureEdit.vue index ce393803..68b7a5d3 100644 --- a/src/views/Feature/FeatureEdit.vue +++ b/src/views/Feature/FeatureEdit.vue @@ -860,6 +860,7 @@ export default { this.map = mapService.createMap(this.$refs.map, { mapDefaultViewCenter, mapDefaultViewZoom, + maxZoom: this.project.map_max_zoom_level, interactions : { doubleClickZoom :false, mouseWheelZoom:true, dragPan:true } }); const currentFeatureId = this.$route.params.slug_signal; diff --git a/src/views/Project/FeaturesListAndMap.vue b/src/views/Project/FeaturesListAndMap.vue index f86c9244..fde352a9 100644 --- a/src/views/Project/FeaturesListAndMap.vue +++ b/src/views/Project/FeaturesListAndMap.vue @@ -303,6 +303,7 @@ export default { lng: this.lng, mapDefaultViewCenter, mapDefaultViewZoom, + maxZoom: this.project.map_max_zoom_level, interactions : { doubleClickZoom :false,mouseWheelZoom:true,dragPan:true } }); -- GitLab