Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Hier 09:36

pyjoubert
Participant assidu
Lieu: Lyon
Date d'inscription: 21 Mar 2006
Messages: 394

QGIS/PYQGIS 3.40: deplacer couche dans l arbre a couches ?

Bonjour,

Je suis en train de faire une fonction qui crée une couche mémoire
Cette couche mémoire vient s'insérer dans l'arbre de couche mais pas forcément à la position voulue (je la veux en 1ere position de l'arbre de couches)

J'ai trouvé dans le PyQgisDevelopperCookbook une façon de la déplacer, mais cela ne fonctionne que si mon arbre de couche ne possède pas de groupe.

Dans mon cas, j'ai des groupes, (voir doc joint)
Je clone bien le nœud de mon layer (clone)
Je le place bien au-dessus de tout (idx = 0)
Mais ensuite, je ne plus supprimer l'original (lay dans mon code) et si je passe non pas le noaud mais le layer, il me supprime le premier, donc celui que je viens de déplacer


Code:

# Cree un layer memoire
# Arg1 : style de géométrie (Polygon, Point, etc ...)
# Arg2 : nom du nouveau layer 
# Res : id du Layer créé
def WBO_LAYER_CreerLayerMemoire(stygeom,nom):
   root = QgsProject.instance().layerTreeRoot()
   layer = QgsVectorLayer((stygeom + "?crs=epsg:3946"), nom, "memory")
   QgsProject.instance().addMapLayer(layer, True)
   node = QgsProject.instance().layerTreeRoot().findLayer(layer)
   if node:
      node.setItemVisibilityChecked(True)
   
   lay = root.findLayer(layer)
   clone = lay.clone()
   root.insertChildNode(0, clone)
   root.removeChildNode(lay)
   #root.removeLayer(layer)
   
   return(layer)

Comment faire ?

Merci de votre aide et bonne journée,  PYJ


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo