Mostrando apenas itens de legenda que são realmente exibidos no mapa no ArcGIS Desktop?

14

Usando o ArcGIS Desktop, existe uma maneira de a legenda mostrar apenas os subitens que são exibidos no mapa?

dassouki
fonte
Você tentou converter a legenda em gráficos? Após a conversão em gráficos, você pode excluir manualmente os itens na legenda que você não precisa. Espero que ajude. Obrigado.
Raj
1
@Raj - Ah, não, eu não planeja fazer isso mantendo os mapas vão ser dor
dassouki
1
A pergunta vinculada é outra pergunta que foi respondida. Portanto, faça uma nova pergunta descrevendo seu problema em detalhes.
MathiasWestin
1
A pergunta antiga é etiquetada como arcgis 9.3, portanto, você deve fazer uma pergunta nova e marcar o ArcGIS 10. Além disso, a pergunta vinculada é uma resposta e você está fazendo uma pergunta de solução de problemas para o limitador de legenda.
Jay Cummins
Além disso, as perguntas da solução de problemas podem levar algum tempo para obter tração, e você deve tentar manter o corpo da pergunta organizado com novas informações para facilitar o acompanhamento. Ou então outros usuários o procurarão e passarão para a próxima pergunta.
Jay Cummins

Respostas:

9

Limitador de legendas

O limitador de legenda funciona apenas em camadas que usam "categorias de valor exclusivas" para definir a simbologia. Esse estilo de legenda pode ser configurado na guia Simbologia da caixa de diálogo Propriedades da camada. O Legend Limiter não limitará a simbologia das camadas configuradas com a simbologia de símbolo único.

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

Mapperz
fonte
Esse é o mais próximo do que eu preciso, em essência, eu tenho que converter todo o meu simbologia de valor único
dassouki
@ Mapperz - há uma correção para ArcGIS 10 aqui: forums.arcgis.com/threads/24968-Legend-Limiter-in-Arc-10
Dano
@ Mapperz (ou qualquer outra pessoa) - baixei os arquivos necessários para o Legend Limiter no link que publiquei acima. Ao tentar instalar, recebi uma mensagem de erro, que pesquisei no Google. Tenho a impressão de que não existe nenhum patch, tornando este complemento compatível com o ArcGIS 10 e o Windows 7. Nesse tópico, devo iniciar uma nova pergunta relacionada a este tópico? Ou .... é do conhecimento de um patch de atender aos parâmetros (ARC 10 e Windows 7) /
Dano
3
Executar no modo de
compactação do
@ Mapperz - você pode postar esta resposta para que eu possa selecioná-la como resposta. Minha pergunta sobre este problema está aqui: gis.stackexchange.com/questions/12609/...
Dano
11

Não há necessidade de escrever nenhum ArcPy adicional para isso. Simplesmente use legendas dinâmicas (que foram adicionadas no ArcGIS 10.1) ao criar seus mapas.

As opções de extensão de mapa permitem controlar como os itens de legenda elegíveis interagem com a extensão atual do mapa. Se a caixa de seleção Mostrar apenas classes visíveis na extensão do mapa atual estiver marcada, uma classe de item de legenda aparecerá na legenda apenas se um recurso dessa classe estiver na extensão atual. Se nenhum recurso desse item de legenda estiver na extensão atual, o item inteiro será removido da legenda.

PolyGeo
fonte
4

Na visualização do mapa, clique com o botão direito do mouse na legenda para abrir a janela Propriedades e clique na guia "Itens". Em "Opções de extensão de mapa", selecione "Mostrar apenas classes visíveis na extensão atual do mapa".

Ele será atualizado à medida que você se move pelo mapa ou ativa / desativa as classes dentro da camada.

vputinski
fonte
Parece ser o mesmo que outra resposta publicada um ano antes .
PolyGeo
Obrigado por ser específico sobre onde a caixa de seleção estava oculta!
JMers
1

Eu acho que esse código vai ajudar:

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
newGIS
fonte