Ich möchte dieselben Vektordaten auf unterschiedliche Weise als unterschiedliche Ebenen anzeigen. Während es sehr praktisch ist in der Lage sein , die Schicht zu kopieren und Stil in 1.8+, wäre es schön zu sein, um eine Schicht zu wählen und mit dem rechten klicken , um es direkt zu kopieren oder zu vervielfältigen.
Gibt es eine einfache Möglichkeit, dies zu tun, wie einen Python-Befehl?
Update: @ dakcartos Vorschlag funktioniert einwandfrei. Da ich viele doppelte Ebenen hinzufügen musste, habe ich es so angepasst, dass es so oft wie nötig wiederholt wird:
for n in range(1,5):
iface = qgis.utils.iface; vl = iface.activeLayer(); iface.addVectorLayer(vl.source(), vl.name() + "_clone" + str(n), vl.providerType())
Das einzige Problem besteht darin, dass die neue Ebene zur aktiven Ebene wird, sodass "_clone" und die Nummer zum vorherigen Namen hinzugefügt werden. Dies führt zu example_clone1, example_clone1_clone2 bis zu dem unhandlichen example_clone1_clone2_clone3_clone4_clone5. Sie müssen jetzt herausfinden, wie Sie von der ursprünglich ausgewählten Ebene duplizieren können.
Antworten:
Hierzu gibt es zwei Funktionsanforderungen ( Nr. 5899 und Nr. 1483 ). Dies ist sicherlich eine machbare Funktion und könnte wahrscheinlich in Version 2.0 enthalten sein, wenn ein Entwickler daran interessiert wäre, sie hinzuzufügen. oder ein Python-Plugin-Entwickler hat darüber nachgedacht.
Die Ausgabe Nr. 5899 enthält auch Python-Code zum Duplizieren einer Ebene (eingereicht von Entwickler Giuseppe Sucameli):
Nach dem Ausführen des Duplizierungscodes wird angezeigt, dass Sie den Stil der ursprünglichen Ebene kopieren / einfügen müssen.
quelle
iface.setActiveLayer( my_layer );iface.actionDuplicateLayer().trigger()
Dabei ist my_layer ein QgsMapLayer, der auf die aktive, ausgewählte Ebene in der Legende festgelegt ist. Anschließend wird actionDuplicateLayer () ausgelöst, um die ausgewählten Ebenen in der Legende zu bearbeiten (Standardeinstellung).Die neuesten Versionen von QGIS verfügen jetzt über die Option "Ebene duplizieren". Klicken Sie mit der rechten Maustaste auf die Ebene, die Sie duplizieren möchten, und es wird eine neue Kopie direkt darunter eingefügt.
Randnotiz: Es scheint, dass Sie nach
View --> Refresh
Änderungen suchen müssen, die in der einen Ebene vorgenommen wurden, um zur nächsten zu gelangen.quelle