Cuando se agrega un dataset como capa a un mapa o a una escena, a veces solo se desea trabajar y dibujar un subconjunto de las entidades del dataset. Los ejemplos incluyen lo siguiente:
- De un dataset de ciudades del mundo, que solo trabaja con aquellas que tienen una población superior a 1 millón de habitantes
- De un dataset de líneas de hidrología, que trabaja con cursos de agua permanentes
- De un dataset de parcelas, que solo trabaja con aquellas que son zonas comerciales
Las consultas de definición permiten definir un filtro que limita las entidades que la capa recupera del dataset. Significa que la consulta de definición no solo afecta al dibujo, sino que también determina las entidades que aparecen en la tabla de atributos de la capa y las que se pueden seleccionar, etiquetar, identificar y procesar a través de las herramientas de geoprocesamiento.
Si desea limitar las entidades que se dibujan, pero mantener todas las entidades de la consulta y el procesamiento, considere la opción de utilizar filtros de visualización. Las consultas de definición y los filtros de visualización se pueden utilizar juntos en una capa, pero las consultas de definición limitan las entidades disponibles en la capa, mientras que los filtros de visualización solo limitan las entidades que se visualizan.
Las consultas de definición se componen de una o más cláusulas. Hay dos tipos de cláusulas: cláusulas de atributos y cláusulas espaciales. Todas las cláusulas escritas en sintaxis SQL y se crean utilizando el generador de consultas. Consulte Introducción a las expresiones de consulta para aprender a trabajar con cláusulas y consultas y para guardar consultas en archivos y cargarlas desde archivos.
Una capa puede tener varias consultas de definición asociadas, pero no puede haber más de una consulta de definición activa cada vez. Incluso si se definen varias consultas para una capa, todas pueden desactivarse, lo que significa que no se aplica ninguna consulta de forma activa.
Nota:
Este tema describe las consultas de definición de una capa de entidades, pero las consultas de definición se pueden utilizar de la misma forma en tablas independientes.
Crear una consulta de definición para una capa
Para crear una consulta de definición en una capa, siga estos pasos:
- Asegúrese de que haya una capa seleccionada en el panel Contenido.
- En el conjunto de pestañas Capa de entidades, haga clic en la pestaña Datos.
- En la pestaña Datos, en el grupo Consulta de definición, haga clic en el botón Generar consulta de definición
para abrir el cuadro de diálogo Propiedades de capa con su pestaña Consulta de definición abierta.
- Haga clic en el botón Nueva consulta de definición o haga clic el su menú desplegable para crear una consulta en modo de diseñador (mediante cláusulas), en modo de editor (mediante código SQL) o como archivo de expresión de consulta (.exp).
- En el generador de consultas, elija valores en los menús para construir la cláusula. Estos menús y sus valores son específicos de los datos de origen subyacentes.
- Opcionalmente, haga clic en Agregar cláusula
para agregar otro atributo de cláusula a la consulta. Elija valores en los menús de la nueva cláusula, según sea necesario. Repita este paso para agregar más cláusulas de atributos o haga clic en su menú desplegable para agregar una cláusula espacial.
- Opcionalmente, haga clic en Configuración
para modificar la visualización de la consulta o de los valores de campo. Estas configuraciones se aplican a todas las cláusulas.
- Haga clic en Orden ascendente u Orden descendente para mostrar los nombres de los campos en el menú desplegable en orden alfabético. Haga clic en Orden original para devolver los campos a su orden predeterminado.
- Mostrar alias de campo está seleccionado de forma predeterminada. Haga clic en Mostrar nombres de campo para incluir el nombre de la tabla en el menú desplegable del campo de la cláusula. Esto resulta especialmente útil si su capa participa en una unión que comparte nombres de campo comunes.
- Mostrar campos visibles está seleccionado de forma predeterminada. Haga clic en Mostrar todos los campos para mostrar los campos ocultos en el menú desplegable del campo de la cláusula.
- Función de autocompletar SQL es un ajuste del modo editor activado de forma predeterminada que ofrece sugerencias mientras se escribe código SQL. Haga clic en este ajuste para desactivar la función de autocompletar de SQL.
- La opción Mostrar solo valores de dominio y subtipo está seleccionada de forma predeterminada. Haga clic en Mostrar todos los valores para incluir cualquier valor no válido o incorrecto en el menú desplegable de valores únicos del campo.
- Opcionalmente, sitúe el cursor en el nombre de la consulta y haga clic para cambiar el nombre.
- Si lo desea, haga clic en Verificar que la expresión SQL es válida
para verificar la consulta.
- Para verificar y finalizar la consulta, en el generador de consultas, haga clic en Aplicar.
- Si esta es la única consulta de definición de la capa, se convierte en la consulta de definición activa y se aplica inmediatamente. Si existen otras consultas de definición en la capa, haga clic en Definir como activa
para aplicar una consulta de definición a la capa.
Agregar una cláusula espacial a una consulta de definición
Además de crear consultas de definición con una o varias cláusulas, las consultas de definición pueden incluir una cláusula espacial. A diferencia de las cláusulas regulares, que filtran las entidades recuperadas del dataset especificando un campo o rango de valores, las cláusulas espaciales utilizan la geometría de una capa o extensión espacial.
Una consulta de definición solo puede incluir una cláusula espacial.
Nota:
Aunque las capas de entidades las admiten, las cláusulas espaciales no son compatibles con otros tipos de capas. Consulte la documentación de su tipo de capa para determinar si el tipo de capa admite cláusulas espaciales.
Siga estos pasos para agregar una cláusula espacial a una consulta de definición existente:
- Si es necesario, haga clic con el botón derecho en la capa en el panel Contenido y, a continuación, haga clic en Propiedades para abrir el cuadro de diálogo Propiedades de capa.
- En la pestaña Consulta de definición, haga clic en Editar para modificar una consulta existente o siga los pasos del 1 al 6 del flujo de trabajo anterior para crear una consulta de definición nueva.
- Haga clic en el menú desplegable Agregar cláusula y luego haga clic en Agregar cláusula espacial.
Se abre el cuadro de diálogo Geometría de cláusula espacial.
- En el cuadro de diálogo Geometría de cláusula espacial, elija una de las opciones siguientes:
- Elegir una capa: permite utilizar la geometría de una capa en el mapa activo. No se pueden elegir capas gráficas ni capas multiparche. Puede utilizar la geometría de todas las entidades de la capa, solo las entidades seleccionadas o solo las entidades a la vista. Si la capa utilizada para generar la geometría se edita o se elimina del mapa, la geometría de la cláusula espacial no se verá afectada.
- Elegir una extensión personalizada: permite utilizar una extensión personalizada de una de las fuentes siguientes:
- La extensión actualmente visible
- La extensión de los datos en todas las capas
- La extensión de todas las entidades o elementos de una capa
- La extensión de todas las entidades seleccionables o elementos
- Elija una opción de capa o extensión de la lista para generar la geometría de la cláusula espacial. Se muestra una vista previa de la geometría.
- Haga clic en Aceptar.
Se agrega una cláusula espacial a la consulta. Tanto en el modo editor como en el modo diseñador, la cláusula espacial aparece debajo de las expresiones de la cláusula de atributo. El operador AND adjunta la cláusula espacial al resto de la expresión.
Nota:
El nombre del campo Forma y el operador is intersected by son componentes obligatorios de la cláusula espacial. Estos valores no se pueden modificar.
Definir la consulta de definición activa
Se puede definir más de una consulta de definición para una capa o tabla y cambiar entre ellas. Solo una está activa en un momento determinado, o puede no tener activa ninguna consulta. Las consultas de definición se almacenan como una propiedad de la capa.
Para cambiar entre consultas de definición activas, realice estos pasos:
- Asegúrese de que haya una capa seleccionada en el panel Contenido.
- En el conjunto de pestañas Capa de entidades, haga clic en la pestaña Datos.
- En la pestaña Datos, en el grupo Consulta de definición, elija una consulta del menú Consulta de definición para aplicarla a la capa.
- Alternativamente, puede establecer la consulta activa desde la pestaña Consulta de definición del cuadro de diálogo Propiedades de capa.
- Haga clic en Definir como activa
y luego haga clic en Aplicar para aplicar la consulta a la capa. Cualquier otra consulta se vuelve inactiva. La consulta activa se nombra en la parte inferior del cuadro de diálogo Propiedades. Si existen muchas consultas en la lista y la consulta activa está fuera de la vista, haga clic en Mostrar la consulta de definición activa
para desplazarse a ella.
- Haga clic en Borrar consulta activa
y luego haga clic en Aplicar para que no se aplique ninguna consulta a la capa o tabla. La capa o tabla conserva todas las consultas, pero ninguna de ellas se aplica actualmente.
- Haga clic en Definir como activa
Sugerencia:
Puede filtrar la lista de capas del panel Contenido para mostrar únicamente las capas que tengan activa una consulta de definición.
Modificar consultas existentes
Con la capa seleccionada en el panel Contenido, en la pestaña Capa de entidades definida, en la pestaña Datos, en el grupo Consulta de definición, haga clic en el botón Generar consulta de definición para abrir el cuadro de diálogo Propiedades de capa con la pestaña Consulta de definición abierta. Para modificar una consulta de definición, desplace el cursor sobre la consulta y realice cualquiera de estas acciones:
- Para modificar, agregar o eliminar cláusulas de la consulta de definición, haga clic en Editar en la celda de la consulta.
- Para editar una cláusula en una consulta, haga los ajustes necesarios en los valores.
- Para eliminar una cláusula de la consulta, haga clic en Eliminar cláusula
.
- Para agregar una cláusula a la consulta, haga clic en Agregar cláusula
.
- Para editar la geometría de la cláusula espacial de una consulta existente, haga clic en Geometría
.
Haga clic en Aplicar para aplicar los cambios a la consulta de definición.
- Para eliminar la consulta de definición de la capa o tabla, cuando no esté en modo de edición, desplace el cursor sobre la celda de la consulta de definición y haga clic en Eliminar la consulta de definición
.
- Para cambiar el nombre de una consulta de definición, haga clic en el nombre de una consulta de definición y escriba un nombre nuevo.
- Para exportar la sintaxis de la consulta a un archivo de expresión de consulta (.exp), cuando no esté en modo de edición, desplace el cursor sobre la celda de la consulta de definición y haga clic en Guardar consulta de definición
.
- Para reemplazar la consulta actual con una consulta diferente de un archivo de expresión de consulta (.exp), cuando no esté en modo de edición, desplace el puntero sobre la celda de la consulta de definición y haga clic en Cargar consulta de definición
.
Establecer consultas de definición en varias capas a la vez
Si varias capas comparten consultas de definición con un nombre común, incluso si el contenido de las consultas no es el mismo, las consultas se pueden activar para las capas simultáneamente. Significa que se puede construir una serie de consultas relacionadas para un determinado escenario y aplicarlas todas a la vez. A continuación, se puede cambiar a un conjunto diferente de consultas para trabajar en otro escenario, si es necesario.
Para aplicar consultas de definición con un nombre común a varias capas simultáneamente, siga estos pasos:
- Asegúrese de que las capas estén seleccionadas en el panel Contenido.
- En el conjunto de pestañas Capa de entidades, haga clic en la pestaña Datos.
- En la pestaña Datos, en el grupo Consulta de definición, elija una consulta del menú Consulta de definición para aplicarla a la capa.
Solo se muestran las consultas de definición con un nombre común a todas las capas seleccionadas.
Automatizar la creación de consultas de definición
Puede automatizar la creación y ejecución de consultas de definición con Python utilizando una combinación de funciones de ArcPy. Para obtener información sobre este tema, incluidas muestras de código, consulte la documentación de clase dedicada a la capa.
También puede generar una consulta de definición a partir de la selección de una capa de entidades con la herramienta Generar consulta de definición desde Selección.
Compartiendo capas con consultas de definición
Cuando una capa se comparte como una capa de entidades o dentro de una capa de imágenes de mapa, solo se conserva y respeta la consulta de definición activa. Todas las demás consultas de definición no activas se eliminan.
Si la consulta contiene una cláusula espacial, se devuelve un error. Consulte 00428: El servidor no admite la cláusula espacial de consulta de definición para obtener más información.