동적 텍스트를 사용하여 레이어 크레딧 표시


9

'레이어 크레딧'을 동적 텍스트 상자로 업데이트하는 방법을 찾고 있습니다. 여기 에서 맵 크레딧 또는 데이터 프레임 크레딧을 사용하는 방법을 찾았 지만 레이어에서 파생 된 정보를 얻는 방법으로는 보이지 않습니다.

매번 빈 문자열을 생성하는 것 같습니다. 누구든지 이것을했거나 해결책을 찾았습니까? 자원이 거의 없거나 전혀없는 맵 크레딧을 업데이트하는 매우 유용한 방법 인 것 같습니다.

파생 레이어 속성


내장 동적 텍스트는 모두 문서 또는 데이터 프레임을 기반으로하기 때문에이를 동적으로 수행 할 방법이 없습니다. 그러나 맵을 만들 때마다 텍스트 필드를 채우기 위해 스크립트를 실행하려는 경우에 가능합니다. 또는 모든 레이어 크레딧에서 맵 크레딧을 채울 수도 있습니다. 이것이 당신이 추구하는 것이라면, 그렇게하기 위해 약간의 코드를 제공 할 수 있습니다.
Fezter

답변:


17

위의 의견에서 언급했듯이 동적 텍스트를 사용 하여이 작업을 수행 할 수있는 방법이 없습니다. 그러나이 작업을 수행하고 python addin 버튼에 연결하거나 MXD 등을 저장할 때 실행할 스크립트를 작성할 수 있습니다. 크레딧을 보유 할 텍스트 요소를 작성하고 "CREDITS"와 같은 이름을 지정해야합니다.

여기에 이미지 설명을 입력하십시오

기본 코드는 다음과 같습니다.

mxd = arcpy.mapping.MapDocument("current")
credit_text = ""
for layer in arcpy.mapping.ListLayers(mxd):
    credit_text += (layer.credits + "\n") # separate each line with a carriage return
for el in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
    if el.name == "CREDITS":
        el.text = credit_text

2
+1 그게 내가하는 방법입니다-거의 같은 코드로 대답했을 것입니다.
Midavalo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.