Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Synthese] Ajout fonctionnalité carte : mode Mailles pour observations #1878

Closed
ch-cbna opened this issue May 3, 2022 · 5 comments
Closed

Comments

@ch-cbna
Copy link
Contributor

ch-cbna commented May 3, 2022

Version
develop

Description

Suite à plusieurs retours utilisateurs, un nouveau mode de visualisation des observations de la Synthèse a été sollicité : le mode Mailles, tel qu'il existe sur Geonature-atlas.
Cependant, contrairement à ce qui a été fait sur Geonature-atlas, où le mode Mailles bascule en mode Points lorsque l'utilisateur zoome sur la carte, un bouton (slide toggle) a été ajouté dans la carte de la Synthèse afin que l'utilisateur choisisse le moment où il bascule du mode Mailles au mode Points. Cette décision a été prise en premier lieu parce que le passage du mode Mailles au mode Points lors d'un zoom (et d'un dézoom) nécessite un certain temps de chargement côté client et que cela peut devenir pesant pour l'utilisateur. Puis, pour garder le fonctionnement de la Synthèse actuelle avec les MarkerCluster, il paraît pertinent de séparer les deux modes d’agrégation des observations : les Mailles / les MarkerCluster. Enfin, la mise en place de ce bouton sur la carte facilitera un développement futur concernant le floutage des données sensibles.

Fonctionnement

Lorsque l'on clique sur le bouton, l'API for web est appelée en utilisant les filtres actuellement sélectionnés dans le formulaire de Recherche. Si on passe au mode Mailles, la géométrie des mailles est renvoyée, si on passe au mode Points, c'est la géométrie des points qui est renvoyée, tout en gardant le fonctionnement des MarkerCluster.
Lorsque le mode Mailles est activé, la légende apparaît, puis disparaît lorsqu'on passe en mode Points.
Lorsque le mode Mailles est activé, que l'on zoome sur une maille et que l'on passe en mode Points, le niveau de zoom reste le même. Au contraire, lorsque l'on passe du mode Points au mode Mailles, la carte dézoome jusqu'à la boudingbox des résultats de la Recherche.

Rendu
image

Suite à un ticket précédent, une proposition avait été faite pour changer le style des circleMarker, qui correspondent au niveau inférieur des MarkerCluster. Les retours sur ce ticket ont été pris en compte : le style des circleMarker ne change pas, on ajoute à l'intérieur le nombre d'observations que contient la géométrie.
Afin de faire concorder le décompte du nombre d'observations des MarkerCluster avec celui des circleMarker - qui affichent le nombre de géométries depuis le regroupement des observations par géométrie (commit d'Antoine) - le fonctionnement des MarkerCluster a été modifié afin qu'ils affichent bien le nombre d'observations contenues au sein du cluster.

image

Enfin, des paramètres de configuration on été créés afin d'activer ou non ce mode Mailles dans la Synthèse :

  • ENABLE_AREAS (Boolean) : ajout du bouton
  • AREAS_TYPE (String) : choix du zonage pour l'agrégation des observations (M5 / M10 / Commune...)
  • AREAS_BY_DEFAULT (Boolean) : choix de la position du toggle par défaut (mode Mailles ou Points)
  • AREAS_LEGEND_CLASSES (List) : ajustement des classes pour garder une sémiologie graphique cohérente en fonction de AREAS_TYPE

Le texte affiché à côté du bouton ("Mailles") peut également être modifié depuis le service d'internationalisation (i18n).

Vous pouvez retrouver ces modifications sur ma branche : https://github.com/ch-cbna/GeoNature/tree/feat/meshes

@camillemonchicourt
Copy link
Member

Merci pour les précisions. En lien avec #1093.
Je regarde ça plus en détail prochainement.

@camillemonchicourt
Copy link
Member

Le fait d'ajouter la possibilité d'afficher les observations par maille/zonage, en plus du mode point/markercluster actuel a 2 objectifs :

  • Proposer une autre lecture cartographique des observations, plus lisibles à large échelle
  • Améliorer les performances et permettre de réduire la limite des recherches à 50000 ou 100000 observations

Cette première étape concerne seulement le premier point.
La limite du nombre de résultats par recherche étant toujours présente du fait que l'on peut passer de l'affichage maille/zonage à l'affiche précis (point ou géométrie précise).

Cette discussion pourrait avoir lieu sur le ticket dédié : #1093

Ce que j'ai eu un peu de mal à comprendre, est qu'il y aurait 3 niveaux d'agrégation possibles, que je précise ici :

  • La nouvelle agrégation possible des observations par zonage/maille
  • L'agrégation existante des observations proches avec le plugin de Leaflet markercluster
  • La nouvelle agrégation ajoutée par @antoinececchimnhn (e324c4c) quand plusieurs observations ont la même observation (ponctuelle, précise ou non) pour optimiser et accélérer le chargement des données et éviter de renvoyer des géométries similaires plusieurs fois.

Concernant les noms des paramètres, je les préciserait de la sorte :

  • ENABLE_AREA_AGREGATION
  • AGREGATION_AREA_TYPE
  • AREA_AGREGATION_BY_DEFAULT
  • AREA_AGREGATION_LEGEND_CLASSES

@ch-cbna
Copy link
Contributor Author

ch-cbna commented May 10, 2022

Le développement d'Antoine est sous-jacent au fonctionnement de la synthèse. Il concerne à la fois les cluster et les mailles. Il permet de répondre au deuxième objectif que tu as cité, celui de lever la limite des 50 000 observations. Nous avons testé de monter la limite à 100 000 observations, et cela fonctionne bien.

D'accord pour le changement de noms des paramètres, par soucis de cohérence, je corrigerai : AREA_AGREGATION_TYPE.

@camillemonchicourt
Copy link
Member

OK.

@bouttier bouttier added this to the 2.12 milestone Nov 15, 2022
@bouttier bouttier modified the milestones: 2.12, 2.11 Dec 6, 2022
@bouttier bouttier modified the milestones: 2.11, 2.12 Dec 19, 2022
@camillemonchicourt
Copy link
Member

Le développement a été repris, amélioré et détaillé dans la PR #1881
Intégré depuis dans la branche develop pour être intégré dans la version 2.12.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants