लेयर क्रेडिट प्रदर्शित करने के लिए डायनामिक टेक्स्ट का उपयोग करना


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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.