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

Dans l'outil de sélection multiple ce serait pratique d'avoir l'oeil, pour activer ou désactiver plusieurs couches en même temps #453

Closed
coulo3 opened this issue May 21, 2020 · 31 comments

Comments

@coulo3
Copy link

coulo3 commented May 21, 2020

Please tell us about your environment:

  • Igo Version:

  • Node:

@eric-darras
Copy link

L'amélioration 453 ajoute une nouvelle fonctionnalité.
Cette nouvelle fonctionnalité, lorsque complet, va apparaître dans igo2 et igo2-lib

= = Dans igo2 = =
Choisir "Carte" dans le menu.
http://localhost:4201/

Sous le menu "Carte", on trouve les options pour les "Couches" et les "Légendes".
Sous les "Couches", on trouve une liste de couches.
En tête de cette liste se trouve quatre champs de contrôle

  1. Un champ texte qui limite l'affichage de la liste
  2. Une image qui change l'ordre du tri de la liste
  3. Un image d'oeil qui conserve les couches visibles
  4. Une case à cocher qui active la sélection multiple de couches

Si on coche sur la case à cocher [au point 4], une barre d'outils pour les options de la sélection multiple apparaît après la fin de la liste.
C'est parmi ces options qu'une image d'oeil doit être ajouté. Cette image d'oeil activera ou désactivera les couches cochées en même temps.

= = Dans igo2-lib = =
Choisir "Layer" dans le menu.
http://localhost:4200/#/layer

Sous le titre de partie "Layers", on trouve une liste de layer ou couches.
En tête de cette liste se trouve quatre champs de contrôle

  1. Un champ texte qui limiter l'affichage de la liste
  2. Une image qui change l'ordre du tri de la liste
  3. Un image d'oeil qui conserve les couches visibles
  4. Une case à cocher qui active la sélection multiple de couches

Si on coche sur la case à cocher [4], une barre d'outils pour les options de la sélection multiple apparaît dans le pied de page.
C'est parmi ces options qu'une image d'oeil doit être ajouté. Cette image d'oeil activera ou désactivera les couches cochées en même temps.

igo2-lib fournit un lien vers un exemple de code source pour invoquer la fonctionnalité.
igo2-lib/demo/src/app/geo/layer/layer.component.html
Si on examine le code source on voit qu'on y appelle une balise <igo-layer-list ..>

Le code source du composant "igo-layer-list" se trouve dans le répertoire suivant :

igo2-lib/packages/geo/src/lib/layer/layer-list/
Il faut modifier les fichiers

  • layer-list.component.html
  • layer-list.component.ts

Lorsque c'est modifié, on peut se contenter de recompiler le module geo :
igo2-lib>npm run build.geo
Ensuite redémarrer igo2-lib
igo2-lib>npm start

Le changement sera visible dans igo2-lib, mais pas encore dans igo2
http://localhost:4200/#/layer

Il faut interrompre igo2 (localhost:4201)
Il faut ensuite copier le contenu du répertoire igo2-lib\dist\geo\* dans le répertoire igo2\node_modules\@igo2\geo\*
Démarrer igo2
igo2>npm start
Le changement sera visible dans igo2
http://localhost:4201/

@eric-darras
Copy link

Analyse des spécifications

On demande un oeil pour pour activer ou désactiver plusieurs couches en même temps dans la sélection multiple.

Si on ajoute un oeil qui permet de cacher les couches sélectionnés, une question se pose. Que faire avec les couches déjà cachées individuellement ?
Exemple A
[x] couche 1 -- Visible
[x] couche 2 -- Non Visible
Si on clique sur l'oeil, les deux couches deviendront non-visibles. Mais que se passe t'il si on re-clique sur l'oeil ?
Solution simple : Les deux couches deviendraient visibles.
Solution complexe : La couche 1 redevient visible et la couche 2 redevient non-visible.

Je propose que l'oeil permette d'inverser la visibilité, pour contourner la difficulté. Ce comportement me semble plus simple à comprendre. Il permet d'évaluer visuellement des alternatives possibles.
Si je reprends mon exemple A, on obtiendrait le comportement suivant :

Exemple A
[x] couche 1 -- Visible
[x] couche 2 -- Non Visible
On clique sur l'oeil
[x] couche 1 -- Non Visible
[x] couche 2 -- Visible
On clique sur l'oeil
[x] couche 1 -- Visible
[x] couche 2 -- Non Visible

@eric-darras
Copy link

eric-darras commented Sep 2, 2020

Après avoir consulté Marc-André Barbeau, la solution simple discutée plus haut a été retenue.
Le comportement sera le suivant :

Exemple A
[x] couche 1 -- Visible
[x] couche 2 -- Non Visible

On clique sur l'oeil
[x] couche 1 -- Non Visible
[x] couche 2 -- Non Visible

On re-clique sur l'oeil
[x] couche 1 -- Visible
[x] couche 2 -- Visible

@mbarbeau
Copy link
Member

mbarbeau commented Sep 2, 2020

Vote sur le comportement de l'oeil avec cette situation:
[x] couche 1 -- Visible
[x] couche 2 -- Non Visible

Solution A (Voter 🚀 ):
On clique sur l'oeil
[x] couche 1 -- Visible
[x] couche 2 -- Visible
On clique sur l'oeil
[x] couche 1 -- Non Visible
[x] couche 2 -- Non Visible

Solution B (Voter ❤️ ):
On clique sur l'oeil
[x] couche 1 -- Non Visible
[x] couche 2 -- Visible
On clique sur l'oeil
[x] couche 1 -- Visible
[x] couche 2 -- Non Visible

@josee666
Copy link

josee666 commented Sep 2, 2020

Lorsque toute les couches sont non visibles afficher un oeil barré pour icone.

Exemple :
couche1 -- non visible
couche2 -- non visible
couche3 -- visible
couche4 -- non visible

icone oeil noir dans la bar

utilisateur clique oeil -> couche 1-2-4(en plus de 3) devient visibles et icone devient oeil barré.

clic sur oeil barré -> toute les couches deviennent non-visibles et icon oeil devient oeil noir

@ameliebernier
Copy link

Moi je vote pour la proposition A, ça me semble plus clair pour l,utilisateur et la plupart des outils fonctionnent comme ça... Si c'est un oeil pour rendre visible, ça sert à rendre les couches visibles! Sinon c'est plutôt un outil pour inverser la visibilité de chaque couche individuellement, il faudrait changer l'icône.

Est-ce que cet outil devrait être présent en tout temps, pas seulement en mode sélection multiple? Ça va être mêlant avec l'oeil qui est déjà présent quand la sélection multiple n'est pas activée, qui a un comportement différent. Pourquoi ce bouton ne servirait pas aussi à rendre facilement toutes les couches visibles ou à masquer toutes les couches d'un coup? Ça serait utile selon moi. Le bouton actuel est plutôt un filtre et je ne trouve pas que l'icône représente bien ce qu'il fait.

@pelord
Copy link
Member

pelord commented Sep 2, 2020

Faut juste faire attention a la performance lorsque l'ont ouvre toutes les couches.

openlayers/openlayers#7790

@ameliebernier
Copy link

En effet, mais c'est le même problème si les utilisateurs ajoutent un grand nombre de couches. Ils pourraient tout sélectionner aussi dans l'outil de sélection multiple.

@josee666
Copy link

josee666 commented Sep 2, 2020

Imagine si en plus si tu as l'option ouvrir les légendes automatiques à l'ouverture de la couche.
Solution??
Limiter a un nombre x pour ouverture??
Limiter l'option à un contexte qui a un maximum de X couche?

@pelord
Copy link
Member

pelord commented Sep 2, 2020

Un avis indiquant que lorsque tu as plus de 15 couches, ça risque d,affecter grandement la performance.....?

@pelord
Copy link
Member

pelord commented Sep 2, 2020

Avec un "Continuer Oui/Non"

@ameliebernier
Copy link

Ça dépend des couches?

Les couches plus légères, il pourrait y en avoir un plus grand nombre sans affecter la performance (ou moins l,affecter) ou c'est vraiment le nombre qui est en cause?

@pelord
Copy link
Member

pelord commented Sep 2, 2020

Il faudrait tester.

@ameliebernier
Copy link

Oui avant de mettre un avertissement de la sorte il faudrait voir. Si la navigation est plus lente l'utilisateur s'en rend bien compte par lui-même, il peut retirer ou masquer des couches facilement à ce moment avec les outils qui sont en place.

Bref je ne priverais pas les utilisateurs de ces fonctionnalités pour autant

@josee666
Copy link

josee666 commented Sep 2, 2020

Idée: Quand tu as coché plus de X couche(a determiner) par exemple 10, l'option de oeil se désactive(grisée) et le tooltip desssus indique : "l'option d'afficher toute les couches ne peut fonctionner avec plus de 10 couches"

@ameliebernier
Copy link

Il ne faudrait pas que ça empêche des les masquer par contre...

Je ne sais pas pour moi c'est vraiment à l'utilisateur de contrôler ça, on s'entend qu'un navigateur carto web aura toujours une limite où ça devient trop lourd, que ce soit 10, 20, 30 ou 50 couches... et ça peut probablement dépendre de la nature des couches, si j'ai 20 couches pas très lourde peut-être que tout va bien en fait!

@pelord
Copy link
Member

pelord commented Sep 2, 2020

Mais concrètement, pour un wms,il n'y a pas de différence entre une couche lourde ou pas... Bref, je ne vois pas le lien lourd/pas lourd

Est-ce lié a un problème de cache... ?

@josee666
Copy link

josee666 commented Sep 2, 2020

Je ne sais pas qu'elle est le % des gens, surtout très grand public, qui seront 'compréhensifs' sur le fait que l'outil grafigne quand on en coche trop... Certains diront-> Cet outil ne va pas bien! Je pense qu'on doit limiter les comportements de l'utilisateur qui peuvent être problématique pour l'outil. On ne doit pas donner la possibilité à l'utilisateur de faire 'planter' l'outil.

@pelord
Copy link
Member

pelord commented Sep 2, 2020

L'avis ferai la "job" a mon avis.

@ameliebernier
Copy link

Effectivement, avoir des problèmes avec 10 couches c'est quand même grave! Ça me surprend un peu

@pelord
Copy link
Member

pelord commented Sep 2, 2020

Dans l'exemple précédent, c'est près de 40 couches.

@pelord
Copy link
Member

pelord commented Sep 2, 2020

faudrait trouver le seuil acceptable.

@ameliebernier
Copy link

Dans ce cas à mon sens, c'est quand même extrême comme utilisation, c'est à nous aussi de ne pas proposer des contextes à 40 couches? Bref je ne limiterais pas l,outil de visibilité à ce moment.

L'avertissement pourrait faire, ma seule crainte c'est de recevoir souvent cet avertissement et de faire mal paraître l'application alors que la performance pourrait être quand même "acceptable". Si c'est 15 couches le max il me semble qu'on a un problème!

Mais si c'est 30-40 c'est quand même pas mal moins pire

@pelord
Copy link
Member

pelord commented Sep 2, 2020

Dans ce cas à mon sens, c'est quand même extrême comme utilisation, c'est à nous aussi de ne pas proposer des contextes à 40 couches? Bref je ne limiterais pas l,outil de visibilité à ce moment.

L'avertissement pourrait faire, ma seule crainte c'est de recevoir souvent cet avertissement et de faire mal paraître l'application alors que la performance pourrait être quand même "acceptable". Si c'est 15 couches le max il me semble qu'on a un problème!

Mais si c'est 30-40 c'est quand même pas mal moins pire

Le problème, c'est l'ajout de couche par le catalogue.

@ameliebernier
Copy link

Par rapport à la "lourdeur", je croyais qu'un WMS avec beaucoup de détails l'image est plus lourde donc le rendu pourrait être plus difficile par le fureteur? Mais peut-être que ce n'est pas la cas!

Dans ton exemple aussi, il pas mal de WMS qui prennent plus de 2 secondes à répondre (jusqu'à 6), c'est quand même long

@pelord
Copy link
Member

pelord commented Sep 2, 2020

Même une fois chargées, le pan reste difficile. ca doit pas être lié au temps d'attente de la réponse

@josee666
Copy link

josee666 commented Sep 2, 2020

Idée : pour garder cela simple et agile on pourrait faire un premier dévellopement qui répond au besoin initiale
1- ajouter le bouton oeil(oeil barré) dans la barre d'outil en sélection multiple (fonctionnement 🚀 selon ce qui a été voté)

On voit à l'usage limitation, seuil, disposition et si nécessaire, a ce moment, on demandera une amélioration/modification

@ameliebernier
Copy link

Je seconde, j'ai ouvert un autre issue concernant ce qu'on fait si trop de de couches sont ajoutées sur la carte #493

@mbarbeau
Copy link
Member

mbarbeau commented Sep 2, 2020

la performance dépend aussi de ton poste, moi je n'ai pas de problème avec le contexte cité ! À part que c'est long à afficher les wms mais ce n'est pas à cause de IGO !

@pelord
Copy link
Member

pelord commented May 19, 2021

@infra-geo-ouverte/depot-central-igo

Vous pensez quoi de ce correctif.
infra-geo-ouverte/igo2-lib@5b7ebc5

Il permet d'appeler seulement l'extent de la map plutot que 1.5x sa taille. Sa semble régler le problème.
Avec le correctif :
https://geoegl.msp.gouv.qc.ca/igo2/mtq-quebec/?visiblelayers=*
Sans le correctif
https://geoegl.msp.gouv.qc.ca/igo2/apercu-qc/?context=mtq&visiblelayers=*

Vous devez faire le test sur un écran de grande taille + 1700px de largeur

matrottier pushed a commit that referenced this issue Nov 17, 2021
* fix(language)  Get/set language is  desynchronized

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

No branches or pull requests

6 participants