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

Ajouter une couche via ses paramètres directement #174

Closed
Gaetanbrl opened this issue Feb 14, 2023 · 24 comments
Closed

Ajouter une couche via ses paramètres directement #174

Gaetanbrl opened this issue Feb 14, 2023 · 24 comments
Milestone

Comments

@Gaetanbrl
Copy link
Member

Gaetanbrl commented Feb 14, 2023

ref #157

Description

En tant que géomaticien,
Je souhaiterai pouvoir ajouter un flux WMS via ses paramètres sans utiliser de serveurs cartographique et sans utiliser de catalogue,
Afin de pouvoir ajouter un type TMS ou un WMS via les paramètres comme le propose mviewer.

Spécifications

Cette issue est complexe et nécessite une réflexion sur :

  • l'interface existante (maquettes)
  • le code existant
  • le contenu

Actuellement, les paramètres sont compatibles avec un WMS. Si on ajoute d'autres types, il est nécessaire de masquer ou afficher les paramètres selon le type. Hors, la fenêtre d'affichage des paramètres d'une couche ne le permet pas actuellement.

Il faut donc revoir le code de cette fenêtre et créer un mapping entre un type et ses paramètres, en sachant que certains paramètres sont communs à un autre type.

Les types potentiellement intégrables dès aujourd'hui car disponible dans mviewer sont :

  • WMS
  • TMS

Les types suivants sont des candidats pour être ajoutés à l'avenir :

  • WFS
  • Sensorthings
  • COG
@Agath21
Copy link
Collaborator

Agath21 commented Feb 14, 2023

Proposition d'interface et parcours utilisateur

NOTE :
Inexistante actuellement, cette fonctionnalité nécessite de modifier les composants de l'interface actuelle en optimisant le parcours utilisateur pour intégrer à terme d'autres types de données. La proposition ci-dessous est basée sur l'ajout d'une couche de type Vector-TMS, elle est également valable pour une nouvelle couche WMS intégrée manuellement.

Ajouter une nouvelle donnée

  1. Pour ajouter une nouvelle donnée manuellement, l'utilisateur doit ouvrir la modale "Ajouter une donnée" depuis les paramètres de sa thématique.
    image

  2. En mode avancé, l'utilisateur se positionne sur l'onglet "Via des paramètres"

  3. Il sélectionne un type de donnée dans la liste déroulante (WMS | Vector-TMS) et renseigne les paramètres demandés (paramètres obligatoires pour une configuration minimale selon la documentation). Il clique sur "Sélectionner" pour ajouter la nouvelle donnée.
    Studio2_newData_vectorTMS_01

  4. La donnée est ajoutée au sein de sa thématique
    Studio2_newData_vectorTMS_02

Modifier la donnée ajoutée

  1. Pour modifier les paramètres de la donnée ajoutée, l'utilisateur clique sur le bouton avec l'icone d'engrenage (même processus que le WMS)
  2. Une nouvelle modale s'ouvre "Paramètres de la donnée" avec les différents paramètres propres aux couches Vector-TMS. Cette modale est structurée en différents onglets comme ci-dessous :
    Studio2_newData_vectorTMS_03
    Studio2_newData_vectorTMS_04
    Studio2_newData_vectorTMS_05
    Studio2_newData_vectorTMS_06

Remarque :
En fonction du type de donnée (WMS | Vector-TMS | etc..), seuls les paramètres valables pour le type sont affichés.
Exemple : l'onglet "Style" est spécifique au type Vector-TMS

Spécifications techniques

  • Modifier la modale "Ajouter une donnée" en ajoutant un système d'onglets : "Depuis un catalogue" / "Via des paramètres"
  • Lors de l'ajout d'une nouvelle couche manuellement, il est obligatoire de renseigner l'ensemble des champs demandés pour ajouter une couche. Affichage d'une alerte si les champs ne sont pas renseignés ?
  • Créer une nouvelle modale pour le type Vector-TMS avec les paramètres associés

Discussions

Sur quel fonctionnement technique partir pour gérer l'affichage des paramètres en fonction du type de la donnée :

  • une modale par type ?
  • Une modale peuplée dynamiquement selon le type de la donnée sélectionnée ?

--

Est-il pertinent de rajouter un badge sur la modale "Paramètres de la donnée" avec le type comme ci-dessous ?
modal_badgeTMS

@Agath21
Copy link
Collaborator

Agath21 commented Feb 14, 2023

Note : Réaliser un tableau avec les paramètres à afficher en fonction du type de donnée en essayant d'indiquer dans quel onglet il se situe et avec quel composant (input / select / switch ...)

Doc : https://mviewerdoc.readthedocs.io/fr/latest/doc_tech/config_layers.html

@lecault
Copy link
Collaborator

lecault commented Mar 1, 2023

Ok pour le principe.
Il faudrait effectivement ajouter la possibilité d'ajouter des types différents (exemple customlayers) et afficher les champs obligatoires pour chaque type à la saisie.

Je trouve le badge une bonne idée.

Concernant la modale Paramètres de la donnée, tu proposes pour chaque option de savoir pour quels types elles sont utiles ?
D'ailleurs ça me fait penser que je n'ai jamais utilisé mviewerstudio autre que WMS.
Concernant cette partie, il faudrait tester le comportement sur un autre type avant d'engager des frais, ça me semble une utilisation marginale actuellement (public expert).

@spelhate
Copy link
Collaborator

spelhate commented Mar 1, 2023

Les types suivants sont des candidats pour être ajoutés à l'avenir :

* WFS

* Sensorthings

* COG

On pourrait également ajouter à termes :

  • customlayer
  • import
  • geojson

@Gaetanbrl
Copy link
Member Author

import

ca correspond à quoi ? un fichier csv ?

@spelhate
Copy link
Collaborator

spelhate commented Mar 1, 2023

import

ca correspond à quoi ? un fichier csv ?

Oui.

@spelhate
Copy link
Collaborator

spelhate commented Mar 1, 2023

Note : Réaliser un tableau avec les paramètres à afficher en fonction du type de donnée en essayant d'indiquer dans quel onglet il se situe et avec quel composant (input / select / switch ...)

Doc : https://mviewerdoc.readthedocs.io/fr/latest/doc_tech/config_layers.html

D'accord - tout en précisant les champs obligatoires et optionnels. On doit pouvoir démarrer à partir de la doc en principe.

@spelhate
Copy link
Collaborator

spelhate commented Mar 1, 2023

👍 +1 pour le badge

Ok pour moi.

@Agath21
Copy link
Collaborator

Agath21 commented Mar 8, 2023

Avancement

  • Modifier la modale "Ajouter une donnée" en ajoutant un système d'onglets : "Depuis un catalogue" / "Via des paramètres"
  • Ajouter les composants d’interfaces permettant de renseigner les paramètres de la nouvelle couche avec une configuration minimale. L’affichage des paramètres est dynamique selon le type sélectionné dans la liste déroulante :
Paramètres obligatoires WMS Vector-TMS
type x x
id x x
nom x x
url x x
style x
styleurl x
  • Affichage d'une alerte si les champs ne sont pas renseignés
  • Réinitialisation du formulaire
  • Création d’un nouvelle couche dans la thématique avec les paramètres renseignées
  • Ouvrir la modale « Paramètres de la donnée » pour pouvoir modifier la nouvelle couche
  • Personnaliser l’affichage des paramètres au sein de la modale en fonction du type de couche
  • Afficher un badge indiquant le type de couche

@Agath21
Copy link
Collaborator

Agath21 commented Mar 8, 2023

Scénarios de mise en place pour la modale des paramètres

Actuellement, lorsqu’on ouvre les paramètres d’une donnée, on ouvre la modale id="mod-layerOptions" avec l’ensemble des paramètres propres au type de couche WMS. La structure de cette modale et ces composants sont définis en dur dans le fichier index.html.

Avec l’ajout de nouveaux types de couche (ici Vector-TMS), certains paramètres ne sont plus utiles et il est nécessaire d’en rajouter d’autres propres au type sélectionné. Pour personnaliser l’affichage des composants, plusieurs solutions techniques peuvent être envisagées :

Solution 1 :

  • On conserve la modale actuelle et on rajoute les nouveaux paramètres en surchargeant l’index.html.

  • On ajoute des classes html avec le nom du type pour les paramètres spécifiques aux types. Exemple :

 <h6 i18n="modal.layer.styles" class="wms" >Style(s) de la donnée disponible(s)</h6>
 <div class="row mt-3 wms" id="frm-lis-styles"></div>
  • On gère ensuite l’affichage ou non des paramètres à l’aide du .js

Avantages : Mise en place rapide et peu coûteuse
Inconvénient : Surcharge de l’index.html

Solution 2:

  • On crée une modale générique « Paramètres de la donnée » vide
  • On crée ensuite des classes pour les types de couches définissant les paramètres associés
  • En fonction du type de la couche, la modale est peuplée par les paramètres : communs + propres au type

Avantages : souplesse de la méthode pour rajouter des types et allègement de l’index
Inconvénient : nécessite de revoir l’ensemble du code pour cette partie (coûteux) + difficulté pour gérer la position des composants dans l’IHM.
En effet actuellement on utilise les classes bootstrap row / col avec une composition personnalisée. Pour cette méthode l’IHM est à retravailler complétement en la simplifiant avec un input par ligne, les un après les autres + suppression des accordéons ou composants plus spécifiques

Des avis ? @spelhate @Gaetanbrl

@Agath21
Copy link
Collaborator

Agath21 commented Mar 9, 2023

Développements réalisés sur la branch issue-174 et mergés sur develop-meg -> à tester

@spelhate
Copy link
Collaborator

ok pour la solution 1

@spelhate
Copy link
Collaborator

spelhate commented Mar 24, 2023

Retours test avec le montage d'une couche WMS geoserver.
ok mais il faudrait activer 2 paramètres par défaut pour WMS :

  • Interrogation standard
  • mode tuilé

@lecault
Copy link
Collaborator

lecault commented Mar 24, 2023

Test sur une couche WMS issue de carmen KO à cause du proxy.
Voici les paramètres à tester :
id : ZNIEFF_2_marine
url : http://ws.carmen.application.developpement-durable.gouv.fr/WMS/10/Nature_Paysage

Test couche WMS QGIS Server OK
id : za_terrain
url : https://carto.audelor.com/index.php/lizmap/service/?repository=simplanter&amp;project=simplanter_en_bretagne_projet

@lecault
Copy link
Collaborator

lecault commented Mar 24, 2023

Test TMS ok

@lecault
Copy link
Collaborator

lecault commented Mar 24, 2023

Après avoir ajouté une couche avec des paramètres personnalisés, on veut ajouter une couche depuis un catalogue, on a un message qui dit "informations manquantes".

Le problème vient du fait que la page ajout par paramètre n'a pas été réinitialisée.

@Agath21
Copy link
Collaborator

Agath21 commented Mar 27, 2023

Retours à corriger :

  • Activer par défaut l'interrogation (WMS)
  • Activer par défaut le mode tuilé (WMS)
  • Gérer la réinitialisation des paramètres lors du changement d'onglet

@Agath21
Copy link
Collaborator

Agath21 commented Mar 27, 2023

Après avoir ajouté une couche avec des paramètres personnalisés, on veut ajouter une couche depuis un catalogue, on a un message qui dit "informations manquantes".

Le problème vient du fait que la page ajout par paramètre n'a pas été réinitialisée.

@lecault, je n'arrive pas à reproduire ton erreur, peux-tu développer ton cas d'usage si tu le reproduis systématiquement ? Merci :)

@spelhate
Copy link
Collaborator

Je viens de reproduire.
1 ) ajouter une couche WMS via paramètres en sélectionnant WMS dans la liste déroulante.
image

  1. Sans aller au bout du processus, cliquer sur l'onglet "depuis un catalogue" puis saisir lycée + rechercher.

3)Cliquer sur une des couches sélectionnées puis puis sur Sélectionner

Le message suivant apparaît :
image

@Agath21
Copy link
Collaborator

Agath21 commented Mar 27, 2023

Ok merci pour le détail.
Effectivement, ce cas d'usage n'est pas géré puisque d'un point de vue interface, on change juste d'onglet, les paramètres restent actifs tant que l'utilisateur n'a pas validé. Je corrige

Agath21 added a commit to jdev-org/mviewerstudio that referenced this issue Mar 27, 2023
@Agath21
Copy link
Collaborator

Agath21 commented Mar 27, 2023

Activer par défaut l'interrogation (WMS)
Activer par défaut le mode tuilé (WMS)
Gérer la réinitialisation des paramètres lors du changement d'onglet

Modifications développées sur fix-174 et disponibles dans la branche develop-meg

@lecault
Copy link
Collaborator

lecault commented Mar 29, 2023

Je viens de tester les corrections sur le studio de jdev, c'est ok pour moi.

@lecault
Copy link
Collaborator

lecault commented Mar 29, 2023

Un petit commentaire : c'est super pratique de pouvoir ajouter une couche comme cela en 3 paramètres :).
Une idée d'amélioration qui pourra faire l'objet d'une issue : pouvoir récupérer l'identifiant / le titre de la donnée depuis un getcapabilities pour un WMS.

@Gaetanbrl
Copy link
Member Author

Une idée d'amélioration qui pourra faire l'objet d'une issue : pouvoir récupérer l'identifiant / le titre de la donnée depuis un getcapabilities pour un WMS.

@lecault peux-tu ouvrir une issue pour ne pas oublier cette fonctionnalité intéressante ?

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

4 participants