Hinzufügen eines neuen Gruppen-Layers mit ArcPy?

21

Kann jemand jetzt einen Gruppen-Layer mit Python in ArcGIS Desktop 10 hinzufügen?

Ich kann arcpy.mapping.AddLayer verwenden, aber dies ist sicherlich nur für eine tatsächliche Ebene im Gegensatz zu einer Gruppenebene.

Soweit habe ich das

import arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.listdataframes(mxd, "layers")[0]
arcpy.mapping.AddLayer
Ian Torr
quelle

Antworten:

18

Ich denke nicht, dass ArcPy irgendetwas bietet, um einen Gruppen-Layer direkt zu erstellen, aber es gibt eine einfache Problemumgehung. Sie können eine .lyr-Datei erstellen, die eine einzelne leere Gruppenebene enthält, und diese Ihrer Karte hinzufügen:

groupLayer = arcpy.mapping.Layer(r"EmptyGroupLayer.lyr")
arcpy.mapping.AddLayer(dataFrame, groupLayer, "BOTTOM")

Anschließend können Sie mit der Funktion AddLayerToGroup weitere Ebenen unter Ihrer Gruppenebene hinzufügen.

Petr Krebs
quelle
Ich habe ein paar Layergruppen, in denen sich aber weitere Gruppen befinden. Nennen wir sie Eltern und Kind. Die Eltern sind alle einzigartig, aber die Kinder in jedem Elternteil sind gleich. EG Incidentals> Vögel und Sekten> Vogel. Gibt es eine Möglichkeit, den Konflikt der beiden gleichnamigen Vogelgruppenebenen zu vermeiden?
Oliver Burdekin
Dies gab mir einen Fehler beim Aufrufen von AddLayerToGroup. Ich habe hier eine Lösung gefunden: geonet.esri.com/thread/105771#comment-393442 groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Gabriel Littman
4

Speichern Sie eine leere Gruppenebene als .lyrDatei. Anschließend können AddLayerSie es Ihrer Karte hinzufügen und von dort aus neue Ebenen hinzufügen.

Jason Scheirer
quelle
0

In ArcGIS 10.2 und 10.3 können Sie dieser Gruppe keinen Layer hinzufügen. Sie sollten sich auf den Layer beziehen, der im Inhaltsverzeichnis hinzugefügt wurde, und nicht auf den Layer auf dem Laufwerk. Schließen Sie mit den im folgenden Beitrag beschriebenen Schritten ab: AddLayertoGroup

newlyrGr = arcpy.mapping.ListLayers(df)[0]

Dann funktioniert alles!

arcpy.mapping.AddLayerToGroup(df, newlyrGr, feat_layer)

Sylvain Klein
quelle