diff --git a/frontend/package.json b/frontend/package.json index 7193692..5ea8af9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -20,6 +20,7 @@ "leaflet": "^1.9.4", "leaflet-easybutton": "^2.4.0", "leaflet-iconmaterial": "^1.1.0", + "papaparse": "^5.4.1", "leaflet.markercluster": "^1.5.3", "pinia": "^2.1.6", "swagger-ui": "^5.10.5", diff --git a/frontend/src/components/DataViewDrawer.vue b/frontend/src/components/DataViewDrawer.vue index 863becc..46764e9 100644 --- a/frontend/src/components/DataViewDrawer.vue +++ b/frontend/src/components/DataViewDrawer.vue @@ -30,12 +30,18 @@

{{ totalModels }}

+ + + + + \ No newline at end of file diff --git a/frontend/src/stores/map.js b/frontend/src/stores/map.js index e518785..ae06ae7 100644 --- a/frontend/src/stores/map.js +++ b/frontend/src/stores/map.js @@ -11,6 +11,7 @@ export const useMapStore = defineStore('map', () => { const modelFeatures = ref({}) const perceptualModelsGeojson = ref([]) const mapLoaded = ref(false) + let currentFilteredData = ref([]) const markerClusterGroup = L.markerClusterGroup({ iconCreateFunction: (cluster) => { const childCount = cluster.getChildCount(); @@ -103,12 +104,12 @@ export const useMapStore = defineStore('map', () => { content += '

Temporal zone:

' content += `${feature.properties.temporal_zone_type.temporal_property}` } - layer.bindPopup(content, { maxWidth: 400, maxHeight: 300, keepInView: true }) + currentFilteredData.value.push(feature); } const pointToLayer = (feature, latlng) => { @@ -151,6 +152,7 @@ export const useMapStore = defineStore('map', () => { } function filterFeatures(filterFunction) { + currentFilteredData.value =[]; // TODO enable multiple filters at the same time // first remove all layers layerGroup.value.removeLayer(modelFeatures.value) @@ -164,6 +166,7 @@ export const useMapStore = defineStore('map', () => { }, pointToLayer: pointToLayer }) + // add filtered features markerClusterGroup.addLayer(modelFeatures.value); layerGroup.value.addLayer(markerClusterGroup); @@ -187,6 +190,7 @@ export const useMapStore = defineStore('map', () => { mapLoaded, fetchPerceptualModelsGeojson, filterFeatures, - resetFilter + resetFilter, + currentFilteredData } })