Gestion des groupes de couches
SimonSAMPERE opened this issue · 4 comments
Adaptation à ce ticket de l'API : https://github.com/isogeo/isogeo-api/issues/59
A voir si on a des modifications à effectuer mais globalement ça pourrait impliquer de prendre en compte le nouvel attribut parentId
des ServiceLayers.
Il vaut voir pour chaque format si QGIS ajoute automatiquement les enfants quand on ajoute la couche parent ou s'il faut l'implémenter.
A priori ça concerne que les WMS et EMS.
EMS
Apparemment, dans le cas des EMS, c'est déjà géré nativemenet dans QGIS donc si l'utilisateur sélectionne une couche de type groupe, ça ajoute automatiquement toutes les couches enfant.
J'ai testé avec ces 2 services :
- https://sig.herault.fr/arcgis/rest/services/intranet/Environnement_biodiversite/MapServer
- https://carto.isogeo.net/server/rest/services/scan_services_1/EMS_EFS_WMS_WFS/MapServer
WMS
Côté WMS c'est plus chiant.
ArcGIS Server
J'ai l'impression que dans le cas des WMS publiés sur AGS, les groupes existent mais ils n'ont pas d'id (pas de <Name></Name>
. D'ailleur dans QGIS, on voit l'arborescence mais on ne peut pas ajouter directement le groupe :
C'est pas évident à tester parce que :
- si on crée la fiche dans app, l'API ne crée pas les couches qui n'ont pas d'id
- si on scan le service, les identifiant des couches sont erronés (https://github.com/isogeo/scan-server/issues/314)
Geoserver
Le service suivant contient un groupe de couches "Département et région" qui contient 2 couches "REGION" et "DEPARTEMENT": https://carto.isogeo.net/geoserver/ows?version=1.3.0
Quand on l'ajoute avec le plugin Isogeo, les 2 couches sont ajoutées séparément :
Quand on l'ajoute avec QGIS directement, une seule couches est ajoutée :
Pour reproduire le comportement de QGIS avec le plugin, il suffit de commenter les lignes 765 à 775 de modules/layer/geo_service.py
QGIS Server
Le service suivant contient plusieurs groupes de couches : https://cartotheque.smavd.org/index.php/lizmap/service/?repository=administratif&project=02_dpe_dpf
Ya un soucis décrit dans ce poste dont je suis l'auteur : https://gis.stackexchange.com/questions/467847/creating-qgsrasterlayer-from-wms-layer-using-pyqgis-in-qgis-3-28
BusinessGeographic
Les groupes apparaissent côté plugin Isogeo mais pas côté QGIS, ajouter un groupe n'ajoute pas les couches filles. En fait c'est pas très claire les service BusinessGeographic. C'est dur de trouver des WMS qui fonctionnent encore et qui sont ouverts et le comportement semble variable côté QGIS. Donc on va les ignorer pour cette version et créer un ticket dédié qu'on traitera si le cas est signalé par un client : #468
Recette réalisée avec QGIS 3.28
- EMS : ok ✔️
- WMS Geoserver : Pas d'affichage de la couche
Santé
de ce service. Dans QGIS, chaque couche est ajoutable séparément pas pas d'un seul coup.
- WMS QGIS Server : Affichage en une seule couche. ✔️
- WMS ArcGis server : les groupes n'ont pas de nom et de ne sont donc pas affichable.
@jgrosmaire pour le WMS Geoserver, pour moi on peut ajouter la couche "Santé" depuis le plugin et depuis QGIS (en faisant un glisser/déposer) mais ça ajoute un groupe vide dans le gestionnaire de couche sans ajouter les couches filles
Et sinon on peut ajouter chaque couche fille individuellement depuis QGIS et depuis le plugin. Est-ce que tu me confirmes que c'est ce que tu as observé, auquel cas je considère que le comportement est satisfaisant.
Oui c'est ça, désolée, je savais pas que tu pouvais faire un glisser/désoser.
Mais du coup c'est bon pour tout sauf ArcGIS Server pas testable.