From 6e8a68b59f33af0842ceda0cf7d684fa67871e58 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timoth=C3=A9e?= <tpoussard@neogeo.fr>
Date: Thu, 2 Jun 2022 12:27:57 +0200
Subject: [PATCH] fix wrong mvt url & prevent geojson reader errors

---
 src/services/map-service.js              | 22 +++++++---------------
 src/views/Project/FeaturesListAndMap.vue |  2 +-
 2 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/src/services/map-service.js b/src/services/map-service.js
index 7388587d..530f832a 100644
--- a/src/services/map-service.js
+++ b/src/services/map-service.js
@@ -453,25 +453,17 @@ const mapService = {
   },
 
   addFeatures: function (features, filter, featureTypes, addToMap = true) {
-    console.log(addToMap);
+    console.log('addToMap', addToMap);
     const drawSource = new VectorSource();
     let retour;
     // TODO verifier utilité de cette boucle et remplacer par readFeatures plutot
     features.forEach((feature) => {
-      retour = new GeoJSON().readFeature(feature, { dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857' }, featureTypes);
-      drawSource.addFeature(retour);
-      // const featureProperties = feature.properties ? feature.properties : feature;
-      // const featureType = featureTypes
-      //   .find((ft) => ft.slug === (featureProperties.feature_type.slug || featureProperties.feature_type));
-      // let filters = [];
-      // if (filter) {
-      //   const typeCheck = filter.featureType && featureProperties.feature_type.slug === filter.featureType;
-      //   const statusCheck = filter.featureStatus && featureProperties.status.value === filter.featureStatus;
-      //   const titleCheck = filter.featureTitle && featureProperties.title.includes(filter.featureTitle);
-      //   filters = [typeCheck, statusCheck, titleCheck];
-      // }
-      // console.log(featureType, filters);
-
+      try {
+        retour = new GeoJSON().readFeature(feature, { dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857' }, featureTypes);
+        drawSource.addFeature(retour);
+      } catch (err) {
+        console.error(err);
+      }
     });
     const styleFunction = (feature) => this.getStyle(feature, featureTypes, filter);
     const olLayer = new VectorLayer({
diff --git a/src/views/Project/FeaturesListAndMap.vue b/src/views/Project/FeaturesListAndMap.vue
index 0deafc36..5bb4915f 100644
--- a/src/views/Project/FeaturesListAndMap.vue
+++ b/src/views/Project/FeaturesListAndMap.vue
@@ -351,7 +351,7 @@ export default {
       // --------- End sidebar events ----------
       setTimeout(() => {
         const project_id = this.projectSlug.split('-')[0];
-        const mvtUrl = `${this.API_BASE_URL}features.mvt/`;
+        const mvtUrl = `${this.API_BASE_URL}features.mvt`;
         mapService.addVectorTileLayer(
           mvtUrl,
           project_id,
-- 
GitLab