Me gustaría mostrar los mismos datos vectoriales de diferentes maneras que las diferentes capas. Si bien es muy útil poder copiar y pegar el estilo de capa en 1.8+, sería bueno poder seleccionar una capa y hacer clic derecho para copiarla o duplicarla directamente.
¿Alguna forma fácil de hacer esto, como un comando de Python?
Actualización: la sugerencia de @ dakcarto funciona perfectamente. Como necesitaba agregar muchas capas duplicadas, lo adapté para repetir tantas veces como fuera necesario:
for n in range(1,5):
iface = qgis.utils.iface; vl = iface.activeLayer(); iface.addVectorLayer(vl.source(), vl.name() + "_clone" + str(n), vl.providerType())
El único problema es que la nueva capa se convierte en activeLayer, por lo que agrega "_clone" y el número al nombre anterior, terminando con example_clone1, example_clone1_clone2, hasta el difícil ejemplo_clone1_clone2_clone3_clone4_clone5. Necesita descubrir cómo duplicar desde la capa seleccionada originalmente, ahora.
Respuestas:
Hay dos solicitudes de funciones con respecto a esto ( # 5899 y # 1483 ). Esta es ciertamente una característica factible, y probablemente podría incluirse en la versión 2.0, si un desarrollador estuviera interesado en agregarla; o, un desarrollador de complementos de Python le dio alguna consideración.
El problema # 5899 también incluye algún código de Python para duplicar una capa (presentado por el desarrollador Giuseppe Sucameli):
Aparece después de ejecutar el código de duplicación, tendrá que copiar / pegar el estilo de la capa original.
fuente
iface.setActiveLayer( my_layer );iface.actionDuplicateLayer().trigger()
donde my_layer es un QgsMapLayer que se establece en la capa activa y seleccionada en la leyenda; luego, actionDuplicateLayer () se activa para trabajar en las capas seleccionadas en la leyenda (su valor predeterminado).Las versiones recientes de QGIS ahora tienen la opción "Duplicar capa". Haga clic con el botón derecho en la capa que desea duplicar e insertará una nueva copia justo debajo.
Nota al margen: Parece que debe presionar
View --> Refresh
para que los cambios realizados en una capa se propaguen a la siguiente.fuente