Objetivo
Crear una interfaz dinámica de seguimiento en QGIS con :
- Gráficos interactivos (mediante Data Plotly)
- Filtros de usuario sencillos (rango, fecha, tipo de residuo)
- Indicadores clave y estadísticas dinámicas
- Un mapa que se adapta a los datos filtrados
¡Todo ello sin salir de la interfaz QGIS!
Caso práctico: vigilancia de los residuos en las playas
Tomemos nuestra capa releves_dechets, que contiene :
Campo | Descripción |
---|---|
playa | Nombre de la playa |
tipo_residuos | Categoría de residuos |
cantidad | Cantidad observada |
date_obs | Fecha de observación |
Objetivo: permitir a un usuario filtrar los datos (por rango, fecha, etc.) y ver inmediatamente :
- Un mapa actualizado
- Un gráfico dinámico
- Indicadores actualizados
Paso 1: filtrar datos interactivamente
- Abra la tabla de atributos de la capa (botón derecho del ratón > «Abrir la tabla de atributos»).
- Haga clic en el icono del embudo para activar el filtro.
- A continuación, haga clic en el icono del formulario de filtrado.
Aparecerán los campos con los widgets definidos (valores individuales, intervalo de fechas, etc.). Seleccione los valores deseados y haga clic en «Aplicar filtro».
Este filtro no modifica directamente el mapa, pero puede :
- utilizar sólo las entidades seleccionadas en Data Plotly,
- o crear una capa virtual con un SELECT * FROM releves_waste WHERE ….
Paso 2: Crear un gráfico interactivo con Data Plotly
- Abra el panel Data Plotly (menú Ver > Paneles > Data Plotly).
- Elija el tipo de gráfico (por ejemplo, Gráfico de barras).
- Configure :
- Eje X: tipo_dechet
- Eje Y: cantidad
- Capa: su capa filtrada
- Marque Utilizar sólo las características seleccionadas si está filtrando a través de la tabla
En cuanto modifique el filtro o seleccione otras características, el gráfico se actualizará.
Paso 3: mostrar indicadores dinámicos con etiquetas
Para evitar complejos scripts o vistas temporales, QGIS permite mostrar estadísticas dinámicas directamente en el mapa, en forma de etiquetas adjuntas a las características.
Objetivo
Mostrar, sólo para las características seleccionadas
- El nombre de la playa
- La cantidad total de residuos observados en esta playa
Método
- Active las etiquetas en su capa.
- En la expresión de la etiqueta, utilice :
if(
is_selected(),
"plage" || '\n' ||
'Total déchets : ' ||
aggregate(
'suivi_plages_dechets',
'sum',
"quantite",
filter:= "plage" = attribute(@parent, 'plage')
),
''
)
This expression checks whether the range is selected (is_selected()), then displays :
- Its name
- The sum of waste for this range, calculated dynamically via aggregate().
Result
When you select one or more ranges, the label is displayed only on those selected, with their respective waste totals.
Variant (optional)
You can also filter via the attribute table or a search form, and the labels will react automatically to the selection.
Paso 4: Organizar el espacio de trabajo
Crear una interfaz de cuadro de mandos:
- Izquierda: tabla de atributos o filtros
- Centro: mapa
- Abajo: gráfico Data Plotly
- Derecha: contadores/estadísticas (mediante cuadros de texto)
Guarde su diseño mediante Proyecto > Guardar diseño.
A modo de resumen
Elemento | Herramientas utilizadas |
---|---|
Filtrado | Tabla de atributos / Formulari |
Gráficos reactivo | Data Plotly |
Estadísticas dinámica | Expresiones / Widgets personalizados |
Interfaz de usuario | Organización del espacio de trabajo |
Bonus: consejos avanzados
- Cree una capa virtual con un filtro dinámico para centralizar los datos mostrados
- Utilice las funciones CASE y regexp_match() para agrupaciones avanzadas
- Probar los plugins: filtro rápido, filtro de tabla de atributos, widgets de entrada
- Considere un proyecto PostgreSQL/PostGIS con vistas materializadas filtrables por fecha o sitio
Continuación…
En un próximo artículo, veremos cómo transformar este cuadro de mando QGIS en una interfaz web con :
- Exportación a QGIS Server o Lizmap
- Cuadro de mando online filtrable (rango, fecha, etc.)
- Integración en un sitio web participativo o ciudadano