Mostrando solo gli elementi della legenda che vengono effettivamente visualizzati sulla mappa in ArcGIS Desktop?


14

Usando ArcGIS Desktop, c'è un modo per la legenda, per mostrare solo gli elementi secondari che vengono visualizzati sulla mappa?


Hai provato a convertire la legenda in grafica? Dopo la conversione in grafica, puoi eliminare manualmente gli elementi nella legenda che non ti servono. Spero che aiuti. Grazie.
Raj,

1
@Raj - Oh no, non ho intenzione di fare in modo che il mantenimento delle mappe sia doloroso
dassouki,

1
La domanda collegata è un'altra domanda a cui è stata data una risposta. Quindi fai una nuova domanda che descriva in dettaglio il tuo problema.
MathiasWestin,

1
La vecchia domanda è taggata arcgis 9.3, quindi dovresti essere OK a fare una nuova domanda e taggare per ArcGIS 10. Inoltre, la domanda collegata è una risposta e stai ponendo una domanda di risoluzione dei problemi per limitatore di legenda.
Jay Cummins,

Inoltre, la risoluzione dei problemi può richiedere del tempo per ottenere trazione e dovresti lavorare per cercare di organizzare il corpo delle domande con nuove informazioni in modo che sia facile da seguire. Altrimenti gli altri utenti lo guarderanno e passeranno alla domanda successiva.
Jay Cummins,

Risposte:


9

Legend Limiter

Legend Limiter funziona solo su layer che utilizzano "categorie di valori univoci" per definire la simbologia. Questo stile di legenda può essere impostato nella scheda Simbologia della finestra di dialogo Proprietà livello. Legend Limiter non limiterà la simbologia dei livelli impostati con la simbologia a singolo simbolo.

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


Questo è il più vicino a ciò di cui ho bisogno, in sostanza, devo convertire tutta la mia simbologia in un valore unico
dassouki,

@ Mapperz - c'è una correzione per ArcGIS 10 qui: forums.arcgis.com/threads/24968-Legend-Limiter-in-Arc-10
Dano

@ Mapperz (o chiunque) - Ho scaricato i file necessari per Legend Limiter al link che ho pubblicato sopra. Durante il tentativo di installazione, ho ricevuto un messaggio di errore, che ho cercato su Google. Ho l'impressione che non esistano patch che rendano questo componente aggiuntivo compatibile con ArcGIS 10 e Windows 7. Su questo thread, dovrei iniziare una nuova domanda relativa a questo argomento? Oppure .... qualcuno è a conoscenza di una patch che soddisfa entrambi i parametri (Arc 10 e Windows 7) /
Dano

3
Esegui in modalità compatibilità Windows su Windows 7.
Mapperz

@ Mapperz: puoi pubblicare questa risposta in modo che io possa selezionarla come risposta. La mia domanda su questo problema è qui: gis.stackexchange.com/questions/12609/…
Dano,

11

Non è necessario scrivere alcun ArcPy aggiuntivo per questo. Usa semplicemente le legende dinamiche (che sono state aggiunte ad ArcGIS 10.1) quando crei le tue mappe.

Le Opzioni estensione mappa consentono di controllare il modo in cui gli elementi della legenda idonei interagiscono con l'estensione della mappa corrente. Se la casella di controllo Mostra solo le classi che sono visibili nell'estensione corrente della mappa è selezionata, una classe di elementi della legenda apparirà nella legenda solo se una caratteristica di quella classe è nell'estensione corrente. Se nessuna funzionalità di quell'elemento legenda è nella misura corrente, l'intero elemento verrà rimosso dalla legenda.


4

Nella vista della mappa, fai clic con il pulsante destro del mouse sulla legenda per aprire la finestra Proprietà, quindi fai clic sulla scheda "Elementi". In "Opzioni estensione mappa", seleziona "Mostra solo le classi che sono visibili nell'estensione corrente della mappa".

Si aggiorna mentre ti sposti sulla mappa o attiva / disattiva le classi all'interno del livello.


Questa sembra essere la stessa di un'altra risposta pubblicata un anno prima .
PolyGeo

Grazie per essere specifico su dove si nascondeva la casella di controllo!
JMers

1

penso che questo codice aiuterà:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.