Tratando de encontrar una manera programática (arcpy) de mover la leyenda si intercepta características dentro de un marco de datos, en el escenario a continuación, si la leyenda oscurece la vista del AOI, entonces quiero que se mueva a una esquina diferente hasta que no sea un problema. Esto tiene que estar encima del marco de datos en lugar de hacer que el marco de datos sea más pequeño y simplemente ponerlo a un lado.
arcpy
legend
data-frame
Slevy
fuente
fuente
Respuestas:
Entradas: Script:
SALIDA:
NOTAS: Para cada página en las páginas controladas por datos, el script intenta encontrar suficiente espacio en las esquinas del marco de datos para colocar la Leyenda (llamada myLegend) sin cubrir ninguna capa de entidad visible. El script usa mallas para identificar celdas de esquina. La dimensión de la celda es ligeramente mayor que la dimensión Leyenda en las unidades de vista de datos. La celda de la esquina es la que comparte un límite con 3 vecinos. Si no se encuentran esquinas o sala, Legend se colocó fuera del marco de datos en la página de diseño.
Lamentablemente, no sé cómo administrar la consulta de definición de página. Los puntos mostrados estaban originalmente dispersos por toda la extensión RECTANGLE, y algunos de ellos no tenían asociación con las páginas. Arcpy todavía ve la capa completa, aunque apliqué la consulta de definición (coincidencia) a los puntos.
fuente
La forma en que haría esto sería crear una clase de entidad "elemento de leyenda" que represente su elemento de leyenda en el mismo sistema de coordenadas que esas entidades.
De esa manera, podría usar Seleccionar capa por ubicación para probar si su elemento de leyenda se superpone con alguna característica y moverlo si lo hace.
No es trivial pero es eminentemente factible y hay un Q&A en este sitio (¿ Convertir el punto XY en unidades de página XY usando arcpy? ) Que podría usarse para resolver la parte más difícil de la conversión entre las coordenadas de la página y el mapa.
fuente
A continuación se muestra el código que he usado para mover leyendas y mapas insertados para no ocultar datos. Usted preguntó acerca de la función de verificación de intersección en otro hilo. Esta es mi implementación del código de otra persona. No recuerdo exactamente de dónde es. Creo que fue un guión para mover un mapa insertado de un estado en Nueva Inglaterra.
El recuadro es el identificador de la leyenda o elemento del mapa insertado.
Entonces, el siguiente código de esta publicación ( Páginas controladas por datos con leyenda móvil / mapa de inserción ) debería tener más sentido.
fuente