Добавить новый групповой слой с ArcPy?

21

Кто-нибудь сейчас как добавить групповой слой с Python в ArcGIS Desktop 10?

Я могу использовать arcpy.mapping.AddLayer, но, конечно, это только для фактического слоя, а не для группового слоя.

пока у меня есть это

import arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.listdataframes(mxd, "layers")[0]
arcpy.mapping.AddLayer
Ян Торр
источник

Ответы:

18

Я не думаю, что ArcPy предоставляет что-либо для непосредственного создания группового слоя, но есть простой обходной путь. Вы можете создать файл .lyr, который содержит один пустой групповой слой и добавить его на карту:

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

Затем вы можете использовать функцию AddLayerToGroup, чтобы добавить другие слои под слоем вашей группы.

Петр Кребс
источник
У меня есть несколько групп слоев, но внутри них есть другие группы. Давайте назовем их родителями и детьми. все родители уникальны, но дети в каждом из родителей одинаковы. EG Incidentals> Птицы и трансекты> Птица. Есть ли способ избежать конфликта двух слоев птиц, имеющих одинаковые названия?
Оливер Бурдекин
Это дало мне ошибку, когда я позвонил AddLayerToGroup. Я нашел решение здесь: geonet.esri.com/thread/105771#comment-393442 groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Габриэль Литтман
4

Сохраните пустой групповой слой как .lyrфайл. Затем вы можете использовать его, AddLayerчтобы добавить его на карту, а затем добавить новые слои оттуда.

Джейсон Шайрер
источник
0

Для ArcGIS 10.2 и 10.3 вы не можете добавить слой в эту группу. Вы должны обратиться к слою, добавленному в оглавлении, а не к слою на диске. Закончите с шагами, описанными в следующем сообщении: AddLayertoGroup

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

Тогда все работает!

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

Сильвен Кляйн
источник