การใช้เดสก์ท็อป ArcGIS มีวิธีใดในตำนานที่จะแสดงเฉพาะรายการย่อยที่แสดงบนแผนที่?
การใช้เดสก์ท็อป ArcGIS มีวิธีใดในตำนานที่จะแสดงเฉพาะรายการย่อยที่แสดงบนแผนที่?
คำตอบ:
ตัว จำกัด ตำนาน
Legend Limiter ใช้งานได้กับเลเยอร์ที่ใช้ "หมวดค่าที่ไม่ซ้ำ" เพื่อกำหนดสัญลักษณ์ คำอธิบายลักษณะนี้สามารถตั้งค่าได้ในแท็บ Symbology ของกล่องโต้ตอบ Layer Properties Legend Limiter จะไม่ จำกัด สัญลักษณ์ของเลเยอร์ที่ตั้งค่าด้วยสัญลักษณ์สัญลักษณ์เดี่ยว
ไม่จำเป็นต้องเขียน ArcPy เพิ่มเติมใด ๆ สำหรับสิ่งนี้ เพียงใช้ตำนานแบบไดนามิก (ซึ่งเพิ่มที่ ArcGIS 10.1) เมื่อคุณเขียนแผนที่ของคุณ
ตัวเลือก Map Map Extent ช่วยให้คุณควบคุมว่ารายการคำอธิบายแผนภูมิที่มีสิทธิ์มีปฏิสัมพันธ์กับขอบเขตแผนที่ปัจจุบันอย่างไร หากเลือกช่องทำเครื่องหมายเฉพาะคลาสที่มองเห็นได้ในขอบเขตแผนที่ปัจจุบันคลาสไอเท็มคำอธิบายจะปรากฏในคำอธิบายเฉพาะหากฟีเจอร์จากคลาสนั้นอยู่ในขอบเขตปัจจุบัน หากไม่มีฟีเจอร์จากรายการคำอธิบายดังกล่าวอยู่ในขอบเขตปัจจุบันรายการทั้งหมดจะถูกลบออกจากคำอธิบายภาพ
ในมุมมองแผนที่คลิกขวาบน Legend เพื่อเปิดหน้าต่าง Properties จากนั้นคลิกแท็บ "Items" ใต้ "ตัวเลือกขอบเขตแผนที่" เลือก "แสดงเฉพาะคลาสที่มองเห็นได้ในขอบเขตแผนที่ปัจจุบัน"
มันจะรีเฟรชเมื่อคุณเคลื่อนที่ไปรอบ ๆ แผนที่หรือเปิด / ปิดการเรียนภายในเลเยอร์
ฉันคิดว่ารหัสนี้จะช่วย:
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