Ajouter une nouvelle couche de groupe avec ArcPy?

21

Est-ce que quelqu'un maintenant comment ajouter une couche de groupe avec Python dans ArcGIS Desktop 10?

Je peux utiliser arcpy.mapping.AddLayer mais ce n'est sûrement que pour une couche réelle par opposition à une couche de groupe.

jusqu'à présent, je l'ai

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

Réponses:

18

Je ne pense pas qu'ArcPy fournisse quoi que ce soit pour créer directement une couche de groupe, mais il existe une solution simple. Vous pouvez créer un fichier .lyr qui contient une seule couche de groupe vide et l'ajouter à votre carte:

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

Vous pouvez ensuite utiliser la fonction AddLayerToGroup pour ajouter d'autres calques sous votre calque de groupe.

Petr Krebs
la source
J'ai quelques groupes de calques mais en leur sein d'autres groupes. Appelons-les parents et enfants. les parents sont tous uniques, mais les enfants de chaque parent sont les mêmes. EG Frais accessoires> Oiseaux et transects> Oiseau. Existe-t-il de toute façon pour éviter le conflit des deux couches de groupes d'oiseaux ayant le même nom?
Oliver Burdekin
Cela m'a donné une erreur lorsque j'ai appelé AddLayerToGroup. J'ai trouvé une solution ici: geonet.esri.com/thread/105771#comment-393442 groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Gabriel Littman
4

Enregistrez un calque de groupe vide en tant que .lyrfichier. Ensuite, vous pouvez l' AddLayerajouter à votre carte, puis ajouter de nouvelles couches à partir de là.

Jason Scheirer
la source
0

Pour ArcGIS 10.2 et 10.3, vous ne pouvez pas ajouter de couche à ce groupe. Vous devez vous référer à la couche ajoutée dans la table des matières et non à celle du lecteur. Terminez avec les étapes décrites dans l'article suivant: AddLayertoGroup

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

Ensuite, tout fonctionne!

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

Sylvain Klein
la source