¿Agregar nueva capa de grupo con ArcPy?


21

¿Alguien ahora cómo agregar una capa de grupo con Python en ArcGIS Desktop 10?

Puedo usar arcpy.mapping.AddLayer pero seguramente esto es solo para una capa real en lugar de una capa de grupo.

hasta ahora tengo esto

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

Respuestas:


18

No creo que ArcPy proporcione nada para crear una capa de grupo directamente, pero hay una solución simple. Puede crear un archivo .lyr que contenga una sola capa de grupo vacía y agregarla a su mapa:

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

Luego puede usar la función AddLayerToGroup para agregar otras capas debajo de su capa de grupo.


Tengo un par de grupos de capas pero dentro de ellos hay otros grupos. Llamémoslos padre e hijo. los padres son todos únicos, sin embargo, los niños dentro de cada padre son iguales. EG Incidentes> Aves y transectos> Pájaro. ¿Hay alguna forma de evitar el conflicto de las dos capas de grupos de aves que tienen el mismo nombre?
Oliver Burdekin el

Esto me dio un error cuando llamé a AddLayerToGroup. Encontré una solución aquí: geonet.esri.com/thread/105771#comment-393442 groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Gabriel Littman

4

Guarde una capa de grupo vacía como un .lyrarchivo. Luego puede usarlo AddLayerpara agregarlo a su mapa y luego agregar nuevas capas desde allí.


0

Para ArcGIS 10.2 y 10.3, no puede agregar una capa a ese grupo. Debe hacer referencia a la capa agregada en la tabla de contenido y no a la de la unidad. Termine con los pasos descritos en la siguiente publicación: AddLayertoGroup

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

Entonces, todo funciona!

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.