You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Améliorer la visibilité des données sur la carte du module Synthèse (= Observations) selon un critère (précision, période, enjeux…) sélectionné par l’utilisateur.
Questions
Comment gère-t-on le cas où un "point" sur la carte contient plusieurs observations dont les valeurs du critère sélectionné sont différentes ?
Utiliser une couleur "neutre" (gris ?) dans un premier temps car la liste des observations où nous colorerons l'icône "i" permettra de faire la distinction.
Autres solutions de coloration, en fonction :
de l'observation la plus récente
du pourcentage le plus élevé d'observations ayant la même valeur de critère
de l'ordre de la liste des valeurs
Principe général
Dans le module Synthèse (= Observations), un utilisateur doit pouvoir sélectionner, via une liste déroulante intégrée à la carte, un critère pour lequel il souhaite visualiser un affichage différencié sur la carte. L'indication de la valeur du critère sélectionné pourra être également reprise au niveau de la liste des observations et sur la fiche d'une observation.
Sur la carte, nous envisageons d'utiliser dans un premier temps des couleurs distinctes pour identifier les différentes valeurs des critères sur la carte. La couleur peut en effet facilement être utilisée à la fois pour les points et les polygones. Si cela s'avère envisageable des icônes pourront être utilisées pour différencier les valeurs mais cela pose des problèmes pour les polygones. Au niveau de la liste des observations, un surlignage et/ou une icône peuvent être utilisés. Dans la fiche observation, une icône, une couleur et/ou un texte pourrait servir à la mise en évidence du critère.
Nous rendrons paramétrable :
l'activation de cette fonctionnalité
le choix des critères
l'attribution des couleurs aux valeurs des critères. Si possible nous proposerons également la possibilité de définir des icônes aux valeurs et pour chaque critère un niveau d'opacité et l'utilisation ou pas d'un contour.
Les critères envisagés sont :
précision (champ precision) : avant (précise) / après (approximative) un niveau de précision en mètre particulier.
période (champ date_max) : avant (ancienne) / après (récente) une année (= date) particulière. Une alternative serait un affichage différencié par décennie.
menace (listes rouges) : enjeu de menace (Oui) / pas d’enjeu de menace (Non).
Mais les critères suivant ont également étaient mentionné dans les tickets du dépôt GeoNature :
type de l'observations (id_nomenclature_observation_status) : présence, absence.
statut de validation (id_nomenclature_valid_status) : douteuse, probable, certaine…
Exemple d'OpenObs
OpenObs permet de sélectionner des critères pour différencier les observations affichées sur la carte.
Une liste intitulée "Couleur par" permet de sélectionner le critère d'affichage des observations sur la carte. Toutes les observations sont représentées par des points dont la couleur correspond à une valeur du critère.
L'interface permet à l'utilisateur de définir la taille du point, sa transparence et l'affichage d'un contour ou pas.
La légende peut être affichée ou réduite pour prendre moins de place sur la carte. Il est également possible de sélectionner via des cases à cocher dans la légende les valeurs à afficher. Les critères proposés par OpenObs peuvent potentiellement contenir des dizaines de valeurs, la légende possède donc une liste déroulante.
Le critère "Grille de densité des enregistrements" correspond à l'actuel mode d'affichage "Mailles" de la carte de GeoNature.
Proposition d'implémentation
Nous envisageons de faire évoluer le mode d'affichage "Mailles" des données actuellement présent sur la carte.
D'un système de coche simple, nous le transformerions en liste de bouton radio permettant de sélectionner une entrée unique dans la liste qui s'ouvrirait. Le même fonctionnement que la sélection du fond cartographique sera utilisé ici.
La liste des modes d'affichage serait représentée par une icone représentant une liste indiquant "Mode d'affichage" au survol. Pour l'icône d'accès aux modes d'affichage, celui de Fontawesome représentant une liste fa-list peut convenir :
Mais une icône ressemblant à celle du Geoportail me semble plus expressive :
Via le paramètre de configurationSYNTHESE.MAP_CRITERIA_LIST, sur le même principe que l'ajout des fonds cartographiques, il sera possible d'ajouter de nouveaux éléments à la liste des modes d'affichage. Ce paramètre sera spécifique au module Synthese. Sa présence activera l'apparition de l'icône "modes d'affichage". Chaque critère d'affichage sera associé à un champ de la vue gn_synthese.v_synthese_for_web_app avec possibilité d'affecter une couleur en fonction d'une correspondance exacte (champs de nomenclatures ; exemples id_nomenclature_observation_status, id_nomenclature_valid_status) de sa valeur ou de son appartenance à une classe "numérique" (champs numérique ou assimilé, exemple precision, date_fin). La valeur du critère sera renvoyée par le backend via le web service unique de la Synthese. La coloration sur la carte sera gérée par Leaflet à l'aide des informations présentes dans le GeoJson.
La liste des modes d'affichage apparaîtra également sur la carte si le paramètre AREA_AGGREGATION_ENABLED est à true. Dans tous les cas, la liste contiendra une entrée nommée Défaut correspondant à l'affichage par défaut de GeoNature sous forme de cluster puis de cercle/polygone bleu représentant un emplacement d'une ou plusieurs observations. Cette entrée sera cochée par défaut sauf si le paramètre AREA_AGGREGATION_BY_DEFAULT est à true. Dans ce dernier cas, c'est l'entrée Mailles correspondant à l’agrégation des observations par mailles qui sera sélectionnée.
Concernant les critères "enjeux réglementaire" et "menaces" nous envisageons de rajouter des champs spécifiques à la vue gn_synthese.v_synthese_for_web_app dans le cadre de notre installation de GeoNature afin de les traiter sur le même principe qu'un champ de type classes.
Pour la liste des observations, nous proposons de colorer l'icône "i" de chaque observations en fonction du critère sélectionné.
Dans le cas des géométries regroupant des observations aux valeurs contradictoires vis à vis du critère proposé. Nous proposons dans un premier temps de les afficher à l'aide d'une couleur "neutre" (gris par exemple ; éventuellement configurable). Un clic sur la géométrie affichera la liste des observations surlignées en vert en tête de liste des observations où la couleur de l'icone "i" permettra de les distinguer les valeurs des différentes observations en fonction du critère sélectionné.
Au niveau de la fiche d'observation, nous testerons l'ajout au niveau de l'entête d'une icône colorée avec information apparaissant au survol.
Détail du paramètre SYNTHESE.MAP_CRITERIA_LIST
Ce paramètre sera une liste de dictionnaire où chaque dictionnaire correspondra à un critère. Pour chaque critère (= dictionnaire) nous aurons les champs suivants :
code (chaine) : code alphanumérique du critère utilisé pour identifier ce critère d'un point de vue technique. Ne devrait pas être utilisé pour l'affichage ou vis à vis de l'utilisateur. Devrait être unique dans la liste et devrait éviter de contenir des caractères spéciaux.
label (chaîne) : intitulé par défaut du critère à utiliser. Servira à l'affichage dans la liste des modes d'affichage.
type (chaîne) : le type de critère parmi : nomenclatures, classes. Le critère de type nomenclatures est à utiliser avec tous les champs field correspondant à une nomenclature ou à un champ texte pour lequel on veut réaliser une coloration en fonction d'une valeur précise. Le critère de type classes est à utiliser avec les champs de type numérique ou date pour lesquels on veut établir des classes numériques de valeurs.
field (chaîne) : le nom du champ présent dans la vue gn_synhtese.v_synthese_for_web_app à utiliser pour le critère.
activate (booléen, défaut : false) : indique si critère est à afficher (true) ou pas (false) dans la liste des modes d'affichage.
default (booléen, défaut : false) : indique si ce critère doit être utilisé par défaut (true) ou pas (false) comme mode d'affichage. Le premier critère à true trouvé dans la liste sera pris en compte.
values (liste de dictionnaire) : liste de dictionnaire correspondant aux valeurs possibles du critère. Chaque dictionnaire d'une valeur pourra contenir les champs :
value (liste de chaines | chaîne) : dans le cas du type nomenclature contiendra un code de la nomenclature, champ cd_nomenclature (Note : tester la possibilité de saisir plusieurs valeurs pour éviter la répétition des entrées avec la même couleur et les mêmes styles → cas de la liste de chaines). Dans le cas du type classes, il contiendra la valeur minimum de comparaison à utiliser vis à vis du contenu du champ field. Un objet sur la carte prendra la couleur correspondante si sa valeur dans le champ field est supérieure ou égale à la valeur indiquée. L'ordre des entrées de la liste values est important car la couleur est attribuée dès que l'opération de comparaison est vraie.
label (chaîne) : intitulé par défaut de la valeur. Servira à l'affichage dans la légende.
color (chaîne) : code hexadécimal de la couleur de la valeur. La valeur sera utilisée pour le style fillcolor.
icon (chaîne) : indiquer une icône à l'aide de son nom. Possibilité d'utiliser des icônes : Fontawsome, Angular Material ou personnalisé SVG (à tester). La pertinence de l'utilisation d'icône reste à déterminer.
styles (dictionnaire) : contient un dictionnaire des clés et valeurs de styles à utiliser en complément de la couleur de remplissage. Les styles disponibles sont ceux de l'option style de l'objet GeoJson de Leaflet.
The text was updated successfully, but these errors were encountered:
Besoin/Objectif
Améliorer la visibilité des données sur la carte du module Synthèse (= Observations) selon un critère (précision, période, enjeux…) sélectionné par l’utilisateur.
Ressources
Tickets GeoNature Github :
#1093 - Synthèse : affichage de mailles et observations géo-confidentielles
Questions
Comment gère-t-on le cas où un "point" sur la carte contient plusieurs observations dont les valeurs du critère sélectionné sont différentes ?
Principe général
Dans le module Synthèse (= Observations), un utilisateur doit pouvoir sélectionner, via une liste déroulante intégrée à la carte, un critère pour lequel il souhaite visualiser un affichage différencié sur la carte. L'indication de la valeur du critère sélectionné pourra être également reprise au niveau de la liste des observations et sur la fiche d'une observation.
Sur la carte, nous envisageons d'utiliser dans un premier temps des couleurs distinctes pour identifier les différentes valeurs des critères sur la carte. La couleur peut en effet facilement être utilisée à la fois pour les points et les polygones. Si cela s'avère envisageable des icônes pourront être utilisées pour différencier les valeurs mais cela pose des problèmes pour les polygones. Au niveau de la liste des observations, un surlignage et/ou une icône peuvent être utilisés. Dans la fiche observation, une icône, une couleur et/ou un texte pourrait servir à la mise en évidence du critère.
Nous rendrons paramétrable :
Les critères envisagés sont :
precision
) : avant (précise) / après (approximative) un niveau de précision en mètre particulier.date_max
) : avant (ancienne) / après (récente) une année (= date) particulière. Une alternative serait un affichage différencié par décennie.Mais les critères suivant ont également étaient mentionné dans les tickets du dépôt GeoNature :
id_nomenclature_observation_status
) : présence, absence.id_nomenclature_valid_status
) : douteuse, probable, certaine…Exemple d'OpenObs
OpenObs permet de sélectionner des critères pour différencier les observations affichées sur la carte.
Une liste intitulée "Couleur par" permet de sélectionner le critère d'affichage des observations sur la carte. Toutes les observations sont représentées par des points dont la couleur correspond à une valeur du critère.
L'interface permet à l'utilisateur de définir la taille du point, sa transparence et l'affichage d'un contour ou pas.
La légende peut être affichée ou réduite pour prendre moins de place sur la carte. Il est également possible de sélectionner via des cases à cocher dans la légende les valeurs à afficher. Les critères proposés par OpenObs peuvent potentiellement contenir des dizaines de valeurs, la légende possède donc une liste déroulante.
Le critère "Grille de densité des enregistrements" correspond à l'actuel mode d'affichage "Mailles" de la carte de GeoNature.
Proposition d'implémentation
Nous envisageons de faire évoluer le mode d'affichage "Mailles" des données actuellement présent sur la carte.
D'un système de coche simple, nous le transformerions en liste de bouton radio permettant de sélectionner une entrée unique dans la liste qui s'ouvrirait. Le même fonctionnement que la sélection du fond cartographique sera utilisé ici.
La liste des modes d'affichage serait représentée par une icone représentant une liste indiquant "Mode d'affichage" au survol. Pour l'icône d'accès aux modes d'affichage, celui de Fontawesome représentant une liste
fa-list
peut convenir :Mais une icône ressemblant à celle du Geoportail me semble plus expressive :
Via le paramètre de configuration
SYNTHESE.MAP_CRITERIA_LIST
, sur le même principe que l'ajout des fonds cartographiques, il sera possible d'ajouter de nouveaux éléments à la liste des modes d'affichage. Ce paramètre sera spécifique au module Synthese. Sa présence activera l'apparition de l'icône "modes d'affichage". Chaque critère d'affichage sera associé à un champ de la vuegn_synthese.v_synthese_for_web_app
avec possibilité d'affecter une couleur en fonction d'une correspondance exacte (champs de nomenclatures ; exemplesid_nomenclature_observation_status
,id_nomenclature_valid_status
) de sa valeur ou de son appartenance à une classe "numérique" (champs numérique ou assimilé, exempleprecision
,date_fin
). La valeur du critère sera renvoyée par le backend via le web service unique de la Synthese. La coloration sur la carte sera gérée par Leaflet à l'aide des informations présentes dans le GeoJson.La liste des modes d'affichage apparaîtra également sur la carte si le paramètre
AREA_AGGREGATION_ENABLED
est àtrue
. Dans tous les cas, la liste contiendra une entrée nomméeDéfaut
correspondant à l'affichage par défaut de GeoNature sous forme de cluster puis de cercle/polygone bleu représentant un emplacement d'une ou plusieurs observations. Cette entrée sera cochée par défaut sauf si le paramètreAREA_AGGREGATION_BY_DEFAULT
est àtrue
. Dans ce dernier cas, c'est l'entréeMailles
correspondant à l’agrégation des observations par mailles qui sera sélectionnée.Concernant les critères "enjeux réglementaire" et "menaces" nous envisageons de rajouter des champs spécifiques à la vue
gn_synthese.v_synthese_for_web_app
dans le cadre de notre installation de GeoNature afin de les traiter sur le même principe qu'un champ de typeclasses
.Pour la liste des observations, nous proposons de colorer l'icône "i" de chaque observations en fonction du critère sélectionné.
Dans le cas des géométries regroupant des observations aux valeurs contradictoires vis à vis du critère proposé. Nous proposons dans un premier temps de les afficher à l'aide d'une couleur "neutre" (gris par exemple ; éventuellement configurable). Un clic sur la géométrie affichera la liste des observations surlignées en vert en tête de liste des observations où la couleur de l'icone "i" permettra de les distinguer les valeurs des différentes observations en fonction du critère sélectionné.
Au niveau de la fiche d'observation, nous testerons l'ajout au niveau de l'entête d'une icône colorée avec information apparaissant au survol.
Détail du paramètre SYNTHESE.MAP_CRITERIA_LIST
Ce paramètre sera une liste de dictionnaire où chaque dictionnaire correspondra à un critère. Pour chaque critère (= dictionnaire) nous aurons les champs suivants :
code
(chaine) : code alphanumérique du critère utilisé pour identifier ce critère d'un point de vue technique. Ne devrait pas être utilisé pour l'affichage ou vis à vis de l'utilisateur. Devrait être unique dans la liste et devrait éviter de contenir des caractères spéciaux.label
(chaîne) : intitulé par défaut du critère à utiliser. Servira à l'affichage dans la liste des modes d'affichage.type
(chaîne) : le type de critère parmi :nomenclatures
,classes
. Le critère de typenomenclatures
est à utiliser avec tous les champsfield
correspondant à une nomenclature ou à un champ texte pour lequel on veut réaliser une coloration en fonction d'une valeur précise. Le critère de typeclasses
est à utiliser avec les champs de type numérique ou date pour lesquels on veut établir des classes numériques de valeurs.field
(chaîne) : le nom du champ présent dans la vuegn_synhtese.v_synthese_for_web_app
à utiliser pour le critère.activate
(booléen, défaut : false) : indique si critère est à afficher (true
) ou pas (false
) dans la liste des modes d'affichage.default
(booléen, défaut : false) : indique si ce critère doit être utilisé par défaut (true
) ou pas (false
) comme mode d'affichage. Le premier critère àtrue
trouvé dans la liste sera pris en compte.values
(liste de dictionnaire) : liste de dictionnaire correspondant aux valeurs possibles du critère. Chaque dictionnaire d'une valeur pourra contenir les champs :value
(liste de chaines | chaîne) : dans le cas du typenomenclature
contiendra un code de la nomenclature, champcd_nomenclature
(Note : tester la possibilité de saisir plusieurs valeurs pour éviter la répétition des entrées avec la même couleur et les mêmes styles → cas de la liste de chaines). Dans le cas du typeclasses
, il contiendra la valeur minimum de comparaison à utiliser vis à vis du contenu du champfield
. Un objet sur la carte prendra la couleur correspondante si sa valeur dans le champfield
est supérieure ou égale à la valeur indiquée. L'ordre des entrées de la listevalues
est important car la couleur est attribuée dès que l'opération de comparaison est vraie.label
(chaîne) : intitulé par défaut de la valeur. Servira à l'affichage dans la légende.color
(chaîne) : code hexadécimal de la couleur de la valeur. La valeur sera utilisée pour le stylefillcolor
.icon
(chaîne) : indiquer une icône à l'aide de son nom. Possibilité d'utiliser des icônes : Fontawsome, Angular Material ou personnalisé SVG (à tester). La pertinence de l'utilisation d'icône reste à déterminer.styles
(dictionnaire) : contient un dictionnaire des clés et valeurs de styles à utiliser en complément de la couleur de remplissage. Les styles disponibles sont ceux de l'optionstyle
de l'objet GeoJson de Leaflet.The text was updated successfully, but these errors were encountered: