Je voudrais afficher les mêmes données vectorielles de différentes manières que différentes couches. Bien qu'il soit très pratique de pouvoir copier et coller le style de calque dans la version 1.8+, ce serait bien de pouvoir sélectionner un calque et cliquer avec le bouton droit pour le copier ou le dupliquer directement.
Une manière simple de le faire, comme une commande Python?
Mise à jour: la suggestion de @ dakcarto fonctionne parfaitement. Comme j'avais besoin d'ajouter de nombreux calques en double, je l'ai adapté pour boucler autant de fois que nécessaire:
for n in range(1,5):
iface = qgis.utils.iface; vl = iface.activeLayer(); iface.addVectorLayer(vl.source(), vl.name() + "_clone" + str(n), vl.providerType())
Le seul problème est que la nouvelle couche devient la couche active, donc elle ajoute "_clone" et le numéro au nom précédent, se terminant par example_clone1, example_clone1_clone2, jusqu'à la lourde exemple_clone1_clone2_clone3_clone4_clone5. Besoin de comprendre comment dupliquer à partir du calque initialement sélectionné, maintenant.
Réponses:
Il y a deux demandes de fonctionnalités à ce sujet ( # 5899 et # 1483 ). C'est certainement une fonctionnalité réalisable, et pourrait probablement être incluse dans la version 2.0, si un développeur souhaitait l'ajouter; ou, un développeur de plugin Python y a réfléchi.
Le problème # 5899 inclut également du code Python pour la duplication d'une couche (soumis par le développeur Giuseppe Sucameli):
Il apparaît après avoir exécuté le code de duplication, vous devrez copier / coller le style du calque d'origine.
la source
iface.setActiveLayer( my_layer );iface.actionDuplicateLayer().trigger()
suit : où my_layer est un QgsMapLayer qui est défini sur le calque actif sélectionné dans la légende; ensuite, l'actionDuplicateLayer () est déclenché pour travailler sur les calques sélectionnés dans la légende (sa valeur par défaut).Les versions récentes de QGIS ont désormais une option "Duplicate Layer". Cliquez avec le bouton droit sur le calque que vous souhaitez dupliquer et il insérera une nouvelle copie juste en dessous.
Note latérale: Il semble que vous devez frapper
View --> Refresh
pour que les modifications apportées dans une couche se propagent à la suivante.la source