आर्कजीआईएस डेस्कटॉप का उपयोग करना, क्या किंवदंती के लिए एक रास्ता है, केवल उप-मानचित्रों को दिखाने के लिए जो नक्शे पर प्रदर्शित होते हैं?
आर्कजीआईएस डेस्कटॉप का उपयोग करना, क्या किंवदंती के लिए एक रास्ता है, केवल उप-मानचित्रों को दिखाने के लिए जो नक्शे पर प्रदर्शित होते हैं?
जवाबों:
लीजेंड लिमिटर
लीजेंड लिमिटर केवल परतों पर काम करता है जो सिम्बोलॉजी को परिभाषित करने के लिए "अद्वितीय मूल्य श्रेणियों" का उपयोग करता है। किंवदंती की इस शैली को लेयर प्रॉपर्टीज़ डायलॉग के सिम्बॉलॉजी टैब में सेट किया जा सकता है। लीजेंड लिमिटर एकल प्रतीक सहजीवन के साथ स्थापित परतों के सहजीवन को सीमित नहीं करेगा।
इसके लिए कोई अतिरिक्त आर्कपी लिखने की आवश्यकता नहीं है। जब आप अपने मानचित्रों को लिख रहे हों तो बस डायनेमिक किंवदंतियों (जो कि आर्कगिस 10.1 में जोड़े गए थे) का उपयोग करें।
मैप एक्स्टेंट ऑप्शंस आपको यह नियंत्रित करने की अनुमति देते हैं कि मौजूदा लीजेंड आइटम वर्तमान मानचित्र सीमा के साथ कैसे इंटरैक्ट करते हैं। यदि एकमात्र शो कक्षाएं जो वर्तमान मानचित्र सीमा में दिखाई देती हैं चेक बॉक्स की जाँच की जाती है, तो एक किंवदंती आइटम वर्ग केवल किंवदंती में दिखाई देगा यदि उस वर्ग की एक विशेषता वर्तमान सीमा में है। यदि उस लीजेंड आइटम से कोई भी विशेषता वर्तमान सीमा में नहीं है, तो संपूर्ण आइटम को लीजेंड से हटा दिया जाएगा।
मैप दृश्य में, गुण विंडो खोलने के लिए लीजेंड पर राइट-क्लिक करें, फिर "आइटम" टैब पर क्लिक करें। "मैप एक्स्टेंट ऑप्शंस" के तहत, "केवल शो क्लासेस जो वर्तमान मैप हद में दिखाई दे रहे हैं" का चयन करें।
जैसे ही आप नक्शे में घूमेंगे या परत के भीतर कक्षाओं को चालू / बंद करेंगे, यह ताज़ा हो जाएगा।
मुझे लगता है कि यह कोड मदद करेगा:
import arcpy
import arcpy.mapping
import os
import sys
from arcpy import env
import string
env.workspace = r"C:\Project"
for mxdname in arcpy.ListFiles("*.mxd"):
print mxdname
mxd = arcpy.mapping.MapDocument(r"C:\Project\\" + mxdname)
legend = arcpy.mapping.ListLayoutElements(mxd,"LEGEND_ELEMENT")[0]
for lyr in legend.listLegendItemLayers():
legend.updateItem(lyr, use_visible_extent = True)
print 'updateItem'
mxd.save()
del mxd