Pokazuje tylko legendy, które są faktycznie wyświetlane na mapie w ArcGIS Desktop?


14

Czy za pomocą ArcGIS Desktop legenda może wyświetlać tylko podelementy wyświetlane na mapie?


Czy próbowałeś przekonwertować legendę na grafikę? Po konwersji do grafiki możesz ręcznie usunąć niepotrzebne elementy legendy. Mam nadzieję że to pomogło. Dzięki.
Raj

1
@Raj - O nie, nie planuję robić tego, że utrzymanie map będzie bolesne
dassouki

1
Połączone pytanie to kolejne pytanie, na które udzielono odpowiedzi. Zadaj więc nowe pytanie szczegółowo opisujące problem.
MathiasWestin

1
Stare pytanie jest oznaczone tagiem arcgis 9.3, więc powinieneś zadawać nowe pytania i dodawać tagi do ArcGIS 10. Również powiązane pytanie jest odpowiedzią i zadajesz pytanie dotyczące rozwiązywania problemów z ogranicznikiem legendy.
Jay Cummins

Ponadto rozwiązywanie problemów z pytaniami może zająć trochę czasu, dlatego powinieneś pracować nad uporządkowaniem treści pytania z nowymi informacjami, aby ułatwić śledzenie. W przeciwnym razie inni użytkownicy to sprawdzą i przejdą do następnego pytania.
Jay Cummins

Odpowiedzi:


9

Legend Limiter

Ogranicznik legendy działa tylko na warstwach, które używają „unikalnych kategorii wartości” do zdefiniowania symboliki. Ten styl legendy można ustawić na karcie Symbolika w oknie dialogowym Właściwości warstwy. Legend Limiter nie ograniczy symboliki warstw ustawionych z symboliką z jednym symbolem.

http://arcscripts.esri.com/details.asp?dbid=16097


To jest najbliższe temu, czego potrzebuję. Zasadniczo muszę przekonwertować całą moją symbolikę na wyjątkową wartość
dassouki

@ Mapperz - poprawka do ArcGIS 10 tutaj: forums.arcgis.com/threads/24968-Legend-Limiter-in-Arc-10
Dano

@ Mapperz (lub ktokolwiek) - Pobrałem niezbędne pliki do Legend Limiter pod linkiem, który zamieściłem powyżej. Podczas próby instalacji otrzymałem komunikat o błędzie, który przejrzałem. Mam wrażenie, że nie istnieje łatka, dzięki której ten dodatek będzie kompatybilny zarówno z ArcGIS 10, jak i Windows 7. Czy w tym wątku powinienem rozpocząć nowe pytanie związane z tym tematem? Lub .... czy ktoś jest świadomy łatki spełniającej oba parametry (Arc 10 i Windows 7) /
Dano

3
Uruchom w trybie zgodności z Windows w systemie Windows 7.
Mapperz

@ Mapperz - czy możesz opublikować tę odpowiedź, abym mógł ją wybrać jako odpowiedź. Moje pytanie dotyczące tego problemu jest tutaj: gis.stackexchange.com/questions/12609/…
Dano,

11

W tym celu nie trzeba pisać żadnych dodatkowych ArcPy. Po prostu korzystaj z dynamicznych legend (które zostały dodane w ArcGIS 10.1) podczas tworzenia map.

Opcje zasięgu mapy pozwalają kontrolować, w jaki sposób kwalifikujące się elementy legendy współdziałają z bieżącym zasięgiem mapy. Jeśli pole wyboru Pokaż tylko klasy widoczne w bieżącym zasięgu mapy jest zaznaczone, klasa elementu legendy pojawi się w legendzie tylko wtedy, gdy obiekt z tej klasy znajduje się w bieżącym zakresie. Jeśli żadne elementy z tego elementu legendy nie znajdują się w bieżącym zakresie, cały element zostanie usunięty z legendy.


4

W widoku mapy kliknij prawym przyciskiem myszy Legendę, aby otworzyć okno Właściwości, a następnie kliknij kartę „Przedmioty”. W obszarze „Opcje zakresu mapy” wybierz „Pokaż tylko klasy widoczne w bieżącym zasięgu mapy”.

Odświeżą się podczas poruszania się po mapie lub włączania / wyłączania klas w warstwie.


To wydaje się być takie samo, jak inna odpowiedź opublikowana rok wcześniej .
PolyGeo

Dziękujemy za szczegółowe określenie miejsca ukrycia pola wyboru!
JMers

1

myślę, że ten kod pomoże:

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.