Sử dụng ArcGIS Desktop, có cách nào để huyền thoại, chỉ hiển thị các phần phụ được hiển thị trên bản đồ không?
Sử dụng ArcGIS Desktop, có cách nào để huyền thoại, chỉ hiển thị các phần phụ được hiển thị trên bản đồ không?
Câu trả lời:
Huyền thoại giới hạn
Legend Limiter chỉ hoạt động trên các lớp sử dụng "danh mục giá trị duy nhất" để xác định hệ thống ký hiệu. Kiểu truyền thuyết này có thể được thiết lập trong tab Symbology của hộp thoại Layer Properties. Legend Limiter sẽ không giới hạn ký hiệu của các lớp được thiết lập với ký hiệu ký hiệu đơn.
Không cần phải viết bất kỳ ArcPy bổ sung nào cho việc này. Chỉ cần sử dụng các huyền thoại động (đã được thêm vào tại ArcGIS 10.1) khi bạn là tác giả của bản đồ.
Tùy chọn mở rộng bản đồ cho phép bạn kiểm soát cách các mục chú thích đủ điều kiện tương tác với phạm vi bản đồ hiện tại. Nếu hộp kiểm Chỉ hiển thị các lớp hiển thị trong hộp kiểm phạm vi bản đồ hiện tại được chọn, một lớp mục chú thích sẽ chỉ xuất hiện trong chú giải nếu một tính năng từ lớp đó ở trong phạm vi hiện tại. Nếu không có tính năng nào từ mục huyền thoại đó trong phạm vi hiện tại, toàn bộ mục sẽ bị xóa khỏi chú giải.
Trong chế độ xem bản đồ, nhấp chuột phải vào Chú giải để mở cửa sổ Thuộc tính, sau đó nhấp vào tab "Mục". Trong "Tùy chọn mở rộng bản đồ", chọn "Chỉ hiển thị các lớp hiển thị trong phạm vi bản đồ hiện tại".
Nó sẽ làm mới khi bạn di chuyển xung quanh bản đồ hoặc bật / tắt các lớp trong lớp.
tôi nghĩ rằng mã này sẽ giúp:
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