Bonjour,
Je débute sur leaflet (et sur le développement web en général) et je suis sur symfony.
J'ai récupéré une table de ma BDD sous format Json et j'insère les points de celle-ci sur une carte.
Je mets ses points dans une couche 'accidentsGroup' pour choisir de l'afficher ou non (entière).
J'aimerais ensuite faire des conditions d'affichage des points sur cette couche pour l'afficher partiellement (ex: type d'accident) mais je ne trouve pas si les données de ma BDD sont rentrées quelque part dans les markers qui sont dans ma couche.
J'ai attribué la valeur de l'ID du point de la table à l'ID du de marker.leaflet_id mais ça ne m'a pas vraiment avancé car j'aurais aimé bouclé sur la couche 'accidentsGroup' mais je n'y arrive pas. J'applique déjà un filtre par date où j'efface puis recréé la couche lors du changement de date mais j'aimerais ne pas avoir à effacer et recréer, seulement masquer (avec removeLayer et addLayer) et appliquer d'autres filtres.
Voici un exemple d'une de mes couches:
Je ne suis peut-être pas du tout sur la bonne piste à vouloir boucler sur la couche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function pointsAccidents() { event.preventDefault(); accidentsGroup.clearLayers(); var start = new Date(document.querySelector("#start").value); var end = new Date(document.querySelector("#end").value); fetch("http://127.0.0.1:8000/accidents") .then(reponse => reponse.json()) .then(accidents => { accidents.forEach(accident => { if (accident.longitude) { let date = new Date(accident.date.toLocaleString("fr-FR")) if (start.getTime() < date.getTime() && date.getTime() < end.getTime()) { let marker = L.marker([accident.longitude, accident.latitude]).addTo(accidentsGroup); marker._leaflet_id = accident.id; } } }); }) .catch(error => { console.log(error); }); };
Merci de votre aide
Partager