Додавання нового групового шару за допомогою 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 Випадки> Птахи та трансекти> Птах. Чи все-таки можна уникнути конфлікту двох шарів групи птахів, що мають однакову назву?
Олівер Бурдекін

Це призвело до помилки, коли я зателефонував у 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 ви не можете додати шар до цієї групи. Ви повинні звернутися до шару, доданого в TOC, а не до цього на диску. Закінчіть дії, описані в наступному дописі: AddLayertoGroup

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

Тоді, все працює!

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.