การใช้ข้อความแบบไดนามิกเพื่อแสดงเครดิตเลเยอร์


9

ฉันกำลังมองหาวิธีในการอัปเดต 'เลเยอร์เครดิต' ลงในกล่องข้อความแบบไดนามิก ฉันพบวิธีใช้เครดิตแผนที่หรือเครดิตเฟรมข้อมูลที่นี่แต่ดูเหมือนจะไม่สามารถรับข้อมูลที่มาจากเลเยอร์ได้

ฉันดูเหมือนจะสร้างสตริงว่างทุกครั้ง มีใครทำสิ่งนี้หรือพบว่ามีการทำงานรอบ ๆ ? ดูเหมือนว่าเป็นวิธีที่มีประโยชน์อย่างยิ่งในการอัปเดตแผนที่เครดิตด้วยทรัพยากรเพียงเล็กน้อยหรือไม่มีเลย

คุณสมบัติของชั้นที่ได้รับ


ไม่มีวิธีการทำสิ่งนี้แบบไดนามิกเนื่องจากข้อความแบบไดนามิกในตัวทั้งหมดขึ้นอยู่กับเอกสารหรือกรอบข้อมูล อย่างไรก็ตามนี่เป็นเรื่องที่เป็นไปได้แน่นอนถ้าคุณยินดีที่จะเรียกใช้สคริปต์เพื่อเติมฟิลด์ข้อความทุกครั้งที่คุณสร้างแผนที่ หรือแม้แต่เติมเครดิตแผนที่จากเครดิตเลเยอร์ทั้งหมด หากนี่คือสิ่งที่คุณต้องการฉันสามารถให้รหัสอาร์คีเป็นบางอย่างได้
Fezter

คำตอบ:


17

ดังที่ได้กล่าวไว้ในความคิดเห็นของฉันด้านบนไม่มีวิธีการทำเช่นนี้โดยใช้ข้อความแบบไดนามิก อย่างไรก็ตามคุณสามารถเขียนสคริปต์เพื่อทำสิ่งนี้และแนบไปกับปุ่ม python addin หรือเรียกใช้เมื่อคุณบันทึก MXD หรือบางอย่าง คุณจะต้องสร้างองค์ประกอบข้อความเพื่อเก็บเครดิตและตั้งชื่อบางอย่างเช่น "เครดิต" ดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

รหัสพื้นฐานจะมีลักษณะดังนี้:

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.