Aggiunta di un nuovo livello di gruppo con ArcPy?


21

Qualcuno ora come aggiungere un livello di gruppo con Python in ArcGIS Desktop 10?

Posso usare arcpy.mapping.AddLayer ma sicuramente questo è solo per un livello effettivo rispetto a un livello di gruppo.

finora ho questo

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

Risposte:


18

Non credo che ArcPy offra qualcosa per creare direttamente il livello di gruppo, ma esiste una soluzione semplice. Puoi creare un file .lyr che contiene un singolo livello di gruppo vuoto e aggiungerlo alla tua mappa:

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

Quindi puoi utilizzare la funzione AddLayerToGroup per aggiungere altri livelli sotto il livello del gruppo.


Ho un paio di gruppi di livelli ma al loro interno altri gruppi. Chiamiamoli genitore e figlio. i genitori sono tutti unici, tuttavia i bambini all'interno di ciascun genitore sono uguali. EG Incidentals> Birds and Transects> Bird. Esiste un modo per evitare il conflitto tra i due strati di gruppi di uccelli con lo stesso nome?
Oliver Burdekin,

Questo mi ha dato un errore quando ho chiamato AddLayerToGroup. Ho trovato una soluzione qui: geonet.esri.com/thread/105771#comment-393442 groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Gabriel Littman

4

Salvare un livello di gruppo vuoto come .lyrfile. Quindi puoi usarlo AddLayerper aggiungerlo alla tua mappa e quindi aggiungere nuovi livelli da lì.


0

Per ArcGIS 10.2 e 10.3, non è possibile aggiungere un livello a quel gruppo. È necessario fare riferimento al livello aggiunto nel sommario e non a quello sull'unità. Termina con i passaggi descritti nel seguente post: AddLayertoGroup

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

Quindi, tutto funziona!

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.