Menambahkan layer grup baru dengan ArcPy?

21

Adakah yang sekarang tahu cara menambahkan layer grup dengan Python di ArcGIS Desktop 10?

Saya dapat menggunakan arcpy.mapping.AddLayer tetapi tentunya ini hanya untuk layer aktual yang berlawanan dengan layer grup.

sejauh ini saya punya ini

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

Jawaban:

18

Saya tidak berpikir ArcPy menyediakan apa pun untuk membuat layer grup secara langsung, tetapi ada solusi sederhana. Anda dapat membuat file .lyr yang berisi satu layer grup kosong dan menambahkannya ke peta Anda:

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

Kemudian Anda dapat menggunakan fungsi AddLayerToGroup untuk menambahkan lapisan lain di bawah lapisan grup Anda.

Petr Krebs
sumber
Saya memiliki beberapa grup layer tetapi di dalamnya ada grup lebih lanjut. Sebut saja mereka orang tua dan anak. orang tua semuanya unik namun anak-anak dalam setiap orang tua sama. Insiden EG> Burung dan Transek> Burung. Apakah ada cara untuk menghindari konflik dari dua lapisan kelompok burung yang memiliki nama yang sama?
Oliver Burdekin
Ini memberi saya kesalahan ketika saya menelepon AddLayerToGroup. Saya menemukan solusi di sini: geonet.esri.com/thread/105771#comment-393442 groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Gabriel Littman
4

Simpan lapisan grup kosong sebagai .lyrfile. Kemudian Anda dapat menggunakannya AddLayeruntuk menambahkannya ke peta Anda dan kemudian menambahkan lapisan baru dari sana.

Jason Scheirer
sumber
0

Untuk ArcGIS 10.2 dan 10.3, Anda tidak bisa menambahkan Layer ke grup itu. Anda harus merujuk ke lapisan yang ditambahkan di TOC dan bukan yang ada di drive. Selesai dengan langkah-langkah yang dijelaskan dalam posting berikut: AddLayertoGroup

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

Lalu, semua berhasil!

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

Sylvain Klein
sumber