ArcPy로 새 그룹 레이어를 추가 하시겠습니까?


21

누구나 ArcGIS Desktop 10에서 Python으로 그룹 레이어를 추가하는 방법은 무엇입니까?

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> 새와 조류> 새. 어쨌든 같은 이름을 가진 두 조류 그룹 레이어의 충돌을 피할 수 있습니까?
Oliver Burdekin

AddLayerToGroup을 호출했을 때 오류가 발생했습니다. 여기에서 해결책을 찾았습니다 : geonet.esri.com/thread/105771#comment-393442 groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Gabriel Littman

4

빈 그룹 레이어를 .lyr파일 로 저장하십시오 . 그런 다음 AddLayer맵에 추가 한 다음 새 레이어를 추가 할 수 있습니다 .


0

ArcGIS 10.2 및 10.3의 경우 해당 그룹에 레이어를 추가 할 수 없습니다. 드라이브의 레이어가 아니라 TOC에 추가 된 레이어를 참조해야합니다. 다음 게시물에 설명 된 단계로 완료하십시오. AddLayertoGroup

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

그런 다음 모든 작품!

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.