ArcGIS Desktop'ı kullanarak, göstergenin yalnızca haritada görüntülenen alt öğeleri göstermesinin bir yolu var mı?
ArcGIS Desktop'ı kullanarak, göstergenin yalnızca haritada görüntülenen alt öğeleri göstermesinin bir yolu var mı?
Yanıtlar:
Gösterge Sınırlayıcı
Gösterge Sınırlayıcı yalnızca sembolojiyi tanımlamak için "benzersiz değer kategorileri" kullanan katmanlarda çalışır. Bu açıklama türü, Katman Özellikleri iletişim kutusunun Semboloji sekmesinde ayarlanabilir. Gösterge Sınırlayıcı, tek sembol sembolojisi ile ayarlanan katmanların sembolojisini sınırlamaz.
Bunun için ek ArcPy yazmaya gerek yoktur. Basitçe kullanmak dinamik efsaneleri size haritalar yazarlık zaman (ArcGIS 10.1 oranında eklendi).
Harita Uzantısı Seçenekleri, uygun açıklama öğelerinin geçerli harita kapsamıyla nasıl etkileşime gireceğini kontrol etmenizi sağlar. Eğer mevcut harita ölçüde görülebilir Sadece gösteri sınıfları onay kutusunu işaretli olduğundan sınıftan bir özellik geçerli ölçüde ise, bir efsane madde sınıfı sadece efsane görünecektir. Bu açıklama öğesindeki hiçbir özellik geçerli kapsamda değilse, tüm öğe açıklamadan kaldırılır.
Harita görünümünde, Özellikler penceresini açmak için Gösterge'ye sağ tıklayın, ardından "Öğeler" sekmesine tıklayın. "Harita Uzantısı Seçenekleri" altında, "Yalnızca geçerli harita boyutunda görünen sınıfları göster" i seçin.
Siz harita üzerinde hareket ettikçe veya katman içindeki sınıfları açıp kapadıkça yenilenir.
bu kod yardımcı olacağını düşünüyorum:
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