GeoNature icon indicating copy to clipboard operation
GeoNature copied to clipboard

Proposition style circleMarker pour observations Synthese

Open ch-cbna opened this issue 4 years ago • 12 comments

Version develop

Description

Suite au commit d'Antoine (sur la branche "feat/data-blurring-develop"), toutes les observations sont réunies par géométrie. Dans la Synthèse, une géométrie est représentée par un circleMarker simple (petit cercle bleu). Le style actuel du circleMarker ne permet pas à l'utilisateur de se rendre compte du nombre d'observations sur une même géométrie. A mon avis, il serait plus pertinent (et visuel) de faire varier le rayon de ce circleMarker de manière proportionnelle au nombre d'observations et d'afficher en son centre le nombre d'observations (comme pour l'affichage en cluster).

Ce nouveau rendu est bien entendu ouvert à discussion. Qu'en pensez-vous ?

Rendu image

ch-cbna avatar Apr 12 '22 15:04 ch-cbna

Bonjour,

Je trouve ca tres sympa et lisible en effet, attention cependant à avoir une taille mini et maxi (on a vite fait d'avoir 150 observations sur un même point) pour que les valeurs extrêmes soient ni trop grosses ni trop petites si possible.

DonovanMaillard avatar Apr 12 '22 15:04 DonovanMaillard

Si je comprends bien, le cercle du marqueur serait proportionnel au nombre de points regroupés ?

J'ai souvent utilisé ou vu utiliser cette librairie Leaflet de cluster avec les cercles de même taille, en les gardant de même taille.

Je trouve ça bien et suffisant, surtout qu'un cluster peut regrouper des centaines d'objets donc ça ferait alors un cercle très très gros ?

camillemonchicourt avatar Apr 12 '22 15:04 camillemonchicourt

En effet, on peut rester sur le même principe que la librairie Leaflet de cluster, en conservant la taille des cercles et en rajoutant uniquement le nombre d'observations.

Cependant, d'un point de vue cartographique, il est plus juste de faire varier la taille d'un symbole lorsqu'il s'agit de représenter une variable quantitative de stock (ici, le nombre d'observations).

Concernant la taille de cercles, si le nombre maximum d'observations par point est 150, alors on peut modifier le calcul de la taille du radius. Sur l'image du commit, le radius = 10 + nb d'observations. Ainsi la taille minimum est fixée à 10 pixel. Afin que le radius n'augmente pas de manière démesurée, on peut modifier : radius = 10 + (nb d'observations / 2).

Un exemple ci-dessous pour 150 observations sur la même géométrie image

Je suis d'accord également avec le fait de garder une cohérence avec l'affichage cluster.

ch-cbna avatar Apr 12 '22 16:04 ch-cbna

Ca reste une augmentation proportionnelle au nombre de donnees, sans limite max. En fonction des jeux de données (rattachement aux controides, données biblio etc) ca risque de poser soucis avec un gros classer qui passe au dessus d'un petit voisin etc.

Je trouve que l'affichage est intéressant mais avec ce risque sur de gros regroupements

DonovanMaillard avatar Apr 12 '22 16:04 DonovanMaillard

Je suis mitigé. Il peut y avoir plusieurs centaines d'objets dans un cluster. Ça fonctionne bien avec le fonctionnement par défaut du cluster où on fait juste varier le chiffre, et la couleur de mémoire.

Le cluster est utilisé comme ça partout où j'ai vu donc ça a du être éprouvé.

camillemonchicourt avatar Apr 12 '22 17:04 camillemonchicourt

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

Concernant le regroupement des observations sur une même géométrie, est-ce que vous trouvez pertinent d'afficher le nombre d'observations dans le circleMarker ?

ch-cbna avatar Apr 13 '22 07:04 ch-cbna

Oui, afficher le nombre d'observations regroupées (comme actuellement) est une info intéressante je trouve.

Plutôt qu'un fonctionnement avec un rayon qui augmente proportionnellement, potentiellement jusqu'à l'infini, est ce qu'il ne faut pas prévoir simplement 3 tailles de points, petit jusqu'a 10 données, moyen jusqu'à 100 et grand au délà par exemple ?

DonovanMaillard avatar Apr 13 '22 07:04 DonovanMaillard

En fait le composant Leaflet.markercluster a déjà un comportement prévu avec 3 classes de taille et de couleur :

map

Je resterai sur ce fonctionnement natif, pour éviter trop de variations et des tailles trop grandes.

camillemonchicourt avatar Apr 13 '22 08:04 camillemonchicourt

Je suis d'accord pour respecter le fonctionnement de markerCluster, la question se pose davantage pour le niveau inférieur au cluster, lorsque l'on affiche les circleMarker. Avec l'agrégation des observations par géométrie il devient intéressant d'imiter le comportement des cluster au niveau des circleMarker. Cette fois-ci, une proposition avec uniquement deux tailles de circleMarker : petite lorsque qu'1 géométrie = 1 observation / moyenne lorsque 1 géométrie = plusieurs observations.

Qu'en pensez-vous ? image

ch-cbna avatar Apr 13 '22 10:04 ch-cbna

Pour le coup, avoir des clusters dans des clusters me semble assez peu lisible. Une fois qu'on est à ce niveau de détail, on a zommé sur un cluster donc on sait qu'on a plusieurs données. Je resterais sur un point bleu unique à ce niveau (au pire avec le chiffre dedans). Je pensais qu'on parlait des clusters :)

DonovanMaillard avatar Apr 13 '22 10:04 DonovanMaillard

D'accord, merci pour ton avis :)

Voilà le rendu avec uniquement l'ajout du nombre observations image

Par contre, à partir de 100 observations par géométrie, le nombre dépassera du cercle...

ch-cbna avatar Apr 13 '22 10:04 ch-cbna

Par contre, à partir de 100 observations par géométrie, le nombre dépassera du cercle...

D'où l’intérêt du cercle avec une taille proportionnelle au nombre d'observation qui permettait de toujours afficher correctement le nombre d'observation...

Ceci dit, les clusters n'ont pas une taille fixe. Leur taille s'agrandit si le nombre à afficher ne rentre pas dans le cercle. Je pense que l'on peut donc essayer d'avoir le même comportement. On agrandit le cercle de façon à ce qu'il contiennent toujours le nombre centré à l'intérieur.

jpm-cbna avatar Apr 13 '22 13:04 jpm-cbna

Style retenu :

image

camillemonchicourt avatar Dec 16 '22 15:12 camillemonchicourt

Ainsi désormais :

  • On ne renvoie qu'une seule fois la géométrie quand plusieurs observations ont la même géométrie, donc cela améliore les performances de chargement
  • On sélectionne dans la liste l'ensemble des observations quand on clique sur une géométrie qui concerne plusieurs observations, donc on améliore la lisibilité

image

Autre exemple avec un relevé linéaire avec une géométrie un peu complexe que l'on ne charge qu'une seule fois (au lieu de 3 dans ce cas), et pour laquelle on voit bien désormais qu'elle a 3 observations associées, quand on clique dessus :

image

camillemonchicourt avatar Mar 14 '23 21:03 camillemonchicourt

Le bug d'affichage des géométries multi-points a nécessité de revenir à un utilisation du classique circle-marker : https://github.com/PnX-SI/GeoNature/issues/2536#issuecomment-1690599807

camillemonchicourt avatar Sep 20 '23 14:09 camillemonchicourt