Thêm lớp nhóm mới với ArcPy?


21

Có ai bây giờ làm thế nào để thêm một lớp nhóm với Python trong ArcGIS Desktop 10 không?

Tôi có thể sử dụng arcpy.micking.AddLayer nhưng chắc chắn điều này chỉ dành cho một lớp thực tế chứ không phải là một lớp nhóm.

cho đến nay tôi có cái này

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

Câu trả lời:


18

Tôi không nghĩ ArcPy cung cấp bất cứ điều gì để tạo lớp nhóm trực tiếp, nhưng có một cách giải quyết đơn giản. Bạn có thể tạo tệp .lyr chứa một lớp nhóm trống duy nhất và thêm nó vào bản đồ của bạn:

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

Sau đó, bạn có thể sử dụng hàm AddLayerTogroup để thêm các lớp khác trong lớp nhóm của bạn.


Tôi có một vài nhóm lớp nhưng trong đó có thêm các nhóm. Hãy gọi họ là cha mẹ và con cái. cha mẹ là duy nhất tuy nhiên con cái trong mỗi cha mẹ là như nhau. Sự cố EG> Chim và Transects> Bird. Có cách nào để tránh xung đột của hai lớp nhóm chim có cùng tên không?
Oliver Burdekin

Điều này đã cho tôi một lỗi khi tôi gọi AddLayerTogroup. Tôi đã tìm thấy một giải pháp ở đây: geonet.esri.com/thread/105771#comment-393442 groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Gabriel Littman

4

Lưu một lớp nhóm trống dưới dạng một .lyrtập tin. Sau đó, bạn có thể sử dụng AddLayerđể thêm nó vào bản đồ của mình và sau đó thêm các lớp mới từ đó.


0

Đối với ArcGIS 10.2 và 10.3, bạn không thể thêm Lớp vào nhóm đó. Bạn nên tham khảo lớp được thêm vào trong TOC chứ không phải lớp trên ổ đĩa. Kết thúc với các bước được mô tả trong bài sau: AddLayertogroup

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

Sau đó, tất cả các công trình!

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.