Tentando encontrar uma maneira programaticamente (arcpy) de mover a legenda se ela interceptar recursos dentro de um quadro de dados, no cenário abaixo, se a legenda obscurecer a visão da AOI, quero que ela se mova para um canto diferente até que não seja um questão. Isso deve estar no topo do quadro de dados, em vez de torná-lo menor e colocá-lo de lado.
arcpy
legend
data-frame
Slevy
fonte
fonte
Respostas:
Entradas: Script:
RESULTADO:
OBSERVAÇÕES: Para cada página nas páginas controladas por dados, o script tenta encontrar espaço suficiente nos cantos do quadro de dados para colocar o Legend (chamado myLegend) sem cobrir nenhuma camada de recurso visível. Script usa arrastão para identificar células de canto. A dimensão da célula é um pouco maior que a dimensão da legenda nas unidades de exibição de dados. A célula de canto é a que compartilha um limite com 3 vizinhos. Se nenhum canto ou sala for encontrado, o Legend é colocado fora do quadro de dados na página de layout.
Infelizmente, não sei como gerenciar a consulta de definição de página. Os pontos mostrados foram originalmente espalhados por toda a extensão RECTANGLE, com alguns deles sem associação com as páginas. O Arcpy ainda vê a camada inteira, embora eu tenha aplicado a consulta de definição (correspondência) aos pontos.
fonte
A maneira que eu faria isso seria criar uma classe de recurso "elemento de legenda" que represente seu elemento de legenda no mesmo sistema de coordenadas que esses recursos.
Dessa forma, você pode usar Selecionar camada por local para testar se o seu elemento de legenda se sobrepõe a algum recurso e movê-lo, se houver.
É não trivial, mas eminentemente realizável e há uma sessão de perguntas e respostas neste site ( converter o ponto XY em unidades de página XY usando arcpy? ) Que poderia ser usado para resolver a parte mais difícil da conversão entre as coordenadas da página e do mapa.
fonte
Abaixo está o código que eu usei para mover legendas e inserir mapas para não obscurecer os dados. Você perguntou sobre a função de interseção de verificação em outro segmento. Esta é a minha implementação do código de outra pessoa. Não me lembro exatamente de onde é. Foi um roteiro para mover um mapa inserido para um estado na Nova Inglaterra, eu acho.
inset é a alça do elemento de legenda ou mapa de inserção.
Em seguida, o código abaixo desta postagem ( Páginas orientadas a dados com legenda móvel / mapa de inserção ) deve fazer mais sentido.
fonte