#1 Wed 24 November 2021 22:51
- MarineTfr
- Juste Inscrit !
- Date d'inscription: 24 Nov 2021
- Messages: 1
Qgis2Web- Table entites filtrees
Bonjour,
Je débute en webmapping et j'ai créer une carte via Qgis2web avec l'ajout de filtres et je souhaiterais pouvoir afficher une table des entités filtrées en dessous de la carte.
J'ai trouvé cette solution de transformation de Json en table html: https://codebun.com/convert-json-data-d … ng-jquery/
Mon problème est que n'arrive pas à déterminer sous quelle variable se retrouve les entités filtrées dans le code du projet.
J'imagine que la réponse doit se trouver dans la partie suivante :
Code:
var Filters = {"Loisir": "str","Ville": "str","Sport": "str"}; function filterFunc() { map.eachLayer(function(lyr){ if ("options" in lyr && "dataVar" in lyr["options"]){ features = this[lyr["options"]["dataVar"]].features.slice(0); try{ for (key in Filters){ keyS = key.replace(/[^a-zA-Z0-9_]/g, "") if (Filters[key] == "str" || Filters[key] == "bool"){ var selection = []; var options = document.getElementById("sel_" + keyS).options for (var i=0; i < options.length; i++) { if (options[i].selected) selection.push(options[i].value); } try{ if (key in features[0].properties){ for (i = features.length - 1; i >= 0; --i){ if (selection.indexOf( features[i].properties[key])0) { features.splice(i,1); } } } } catch(err){ } } if (Filters[key] == "int"){ sliderVals = document.getElementById( "div_" + keyS).noUiSlider.get(); try{ if (key in features[0].properties){ for (i = features.length - 1; i >= 0; --i){ if (parseInt(features[i].properties[key]) < sliderVals[0] || parseInt(features[i].properties[key]) > sliderVals[1]){ features.splice(i,1); } } } } catch(err){ } } if (Filters[key] == "real"){ sliderVals = document.getElementById( "div_" + keyS).noUiSlider.get(); try{ if (key in features[0].properties){ for (i = features.length - 1; i >= 0; --i){ if (features[i].properties[key] < sliderVals[0] || features[i].properties[key] > sliderVals[1]){ features.splice(i,1); } } } } catch(err){ } } if (Filters[key] == "date" || Filters[key] == "datetime" || Filters[key] == "time"){ try{ if (key in features[0].properties){ HTMLkey = key.replace(/[&/\#,+()$~%.'":*?{} ]/g, ''); startdate = document.getElementById("dat_" + HTMLkey + "_date1").value.replace(" ", "T"); enddate = document.getElementById("dat_" + HTMLkey + "_date2").value.replace(" ", "T"); for (i = features.length - 1; i >= 0; --i){ if (features[i].properties[key] < startdate || features[i].properties[key] > enddate){ features.splice(i,1); } } } } catch(err){ } } } } catch(err){ } this[lyr["options"]["layerName"]].clearLayers(); this[lyr["options"]["layerName"]].addData(features); } })
J'ai mis mon projet test sur GitHub à l'adresse suivante : https://marine-tailfer.github.io/test-table-filtre/
Merci aux personnes qui pourraient avoir des idées.
Hors ligne
#2 Fri 26 November 2021 07:59
Re: Qgis2Web- Table entites filtrees
Bonjour,
Je me permets de déplacer votre sujet ici.
Hors ligne