Dodanie nowej warstwy grupowej za pomocą ArcPy?

21

Czy ktoś może teraz dodać warstwę grupową za pomocą Pythona w ArcGIS Desktop 10?

Mogę użyć arcpy.mapping.AddLayer, ale na pewno jest to tylko warstwa rzeczywista, a nie warstwa grupowa.

jak dotąd mam to

import arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.listdataframes(mxd, "layers")[0]
arcpy.mapping.AddLayer
Ian Torr
źródło

Odpowiedzi:

18

Nie sądzę, aby ArcPy zapewniał coś do bezpośredniego tworzenia warstwy grupowej, ale istnieje proste obejście. Możesz utworzyć plik .lyr zawierający pojedynczą pustą warstwę grupy i dodać go do mapy:

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

Następnie możesz użyć funkcji AddLayerToGroup, aby dodać kolejne warstwy pod warstwą grupy.

Petr Krebs
źródło
Mam kilka grup warstw, ale w nich kolejne grupy. Nazwijmy ich rodzicem i dzieckiem. wszyscy rodzice są wyjątkowi, ale dzieci w obrębie każdego z rodziców są takie same. EG Przypadki> Ptaki i transekty> Ptak. Czy w ogóle można uniknąć konfliktu dwóch warstw grup ptaków o tej samej nazwie?
Oliver Burdekin
Dało mi to błąd, gdy zadzwoniłem do AddLayerToGroup. Znalazłem rozwiązanie tutaj: geonet.esri.com/thread/105771#comment-393442 groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Gabriel Littman
4

Zapisz pustą warstwę grupy jako .lyrplik. Następnie możesz użyć, AddLayeraby dodać go do mapy, a następnie dodać nowe warstwy stamtąd.

Jason Scheirer
źródło
0

W przypadku ArcGIS 10.2 i 10.3 nie można dodać warstwy do tej grupy. Powinieneś odnosić się do warstwy dodanej w Spisie treści, a nie tej na dysku. Zakończ kroki opisane w następującym poście: AddLayertoGroup

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

Więc wszystko działa!

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

Sylvain Klein
źródło