Gostaria de exibir os mesmos dados vetoriais de maneiras diferentes e diferentes camadas. Embora seja muito útil copiar e colar o estilo de camada no 1.8+, seria bom poder selecionar uma camada e clicar com o botão direito do mouse para copiar ou duplicar diretamente.
Alguma maneira fácil de fazer isso, como um comando Python?
Atualização: a sugestão de @ dakcarto funciona perfeitamente. Como eu precisava adicionar muitas camadas duplicadas, eu a adaptei para repetir quantas vezes fosse necessário:
for n in range(1,5):
iface = qgis.utils.iface; vl = iface.activeLayer(); iface.addVectorLayer(vl.source(), vl.name() + "_clone" + str(n), vl.providerType())
O único problema é que a nova camada se torna o activeLayer e, portanto, adiciona "_clone" e o número ao nome anterior, terminando com example_clone1, example_clone1_clone2, até o pesado exemplo_clone1_clone2_clone3_clone4_clone5. Precisa descobrir como duplicar a partir da camada originalmente selecionada, agora.
Respostas:
Há duas solicitações de recursos relacionadas a isso ( # 5899 e # 1483 ). Este é certamente um recurso factível e provavelmente poderia ser incluído na versão 2.0, se um desenvolvedor estivesse interessado em adicioná-lo; ou, um desenvolvedor de plug-in Python considerou o assunto.
O problema # 5899 também inclui algum código Python para duplicar uma camada (enviado pelo desenvolvedor Giuseppe Sucameli):
Aparece após a execução do código de duplicação, você terá que copiar / colar o estilo da camada original.
fonte
iface.setActiveLayer( my_layer );iface.actionDuplicateLayer().trigger()
onde my_layer é um QgsMapLayer que está definido para a camada selecionada ativa na legenda; então, o actionDuplicateLayer () é acionado para funcionar nas camadas selecionadas na legenda (seu padrão).As versões recentes do QGIS agora têm uma opção "Duplicate Layer". Clique com o botão direito do mouse na camada que deseja duplicar e ela inserirá uma nova cópia logo abaixo.
Nota lateral: parece que você precisa pressionar
View --> Refresh
para que as alterações feitas em uma camada sejam propagadas para a próxima.fonte