Adicionando nova camada de grupo com o ArcPy?


21

Alguém agora como adicionar uma camada de grupo com Python no ArcGIS Desktop 10?

Eu posso usar arcpy.mapping.AddLayer, mas certamente isso é apenas para uma camada real, em oposição a uma camada de grupo.

até agora eu tenho isso

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

Respostas:


18

Não acho que o ArcPy forneça algo para criar a camada de grupo diretamente, mas existe uma solução simples. Você pode criar um arquivo .lyr que contenha uma única camada de grupo vazia e adicioná-lo ao seu mapa:

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

Em seguida, você pode usar a função AddLayerToGroup para adicionar outras camadas na sua camada de grupo.


Eu tenho alguns grupos de camadas, mas dentro deles outros grupos. Vamos chamá-los de pai e filho. os pais são todos únicos, porém os filhos de cada pai são os mesmos. EG Incidentals> Aves e transectos> Pássaro. Existe alguma maneira de evitar o conflito das duas camadas de grupos de pássaros com o mesmo nome?
26712 Oliver Burdekin

Isso me deu um erro quando liguei para AddLayerToGroup. Encontrei uma solução aqui: geonet.esri.com/thread/105771#comment-393442 groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Gabriel Littman

4

Salve uma camada de grupo vazia como um .lyrarquivo. Em seguida, você pode AddLayeradicioná-lo ao seu mapa e adicionar novas camadas a partir daí.


0

Para o ArcGIS 10.2 e 10.3, você não pode adicionar uma camada a esse grupo. Você deve consultar a camada adicionada no sumário e não a da unidade. Conclua com as etapas descritas na seguinte postagem: AddLayertoGroup

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

Então, tudo funciona!

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.