¿Cómo hacemos los certificados de QGIS Colombia?

Germán Carrillo

25 de Mayo de 2020

certificados qgis atlas

En QGIS Colombia generamos automáticamente los certificados de cursos y capacitaciones empleando el software... ¡QGIS!


Conocemos bastante sobre las bondades de QGIS en el ámbito SIG. Sin embargo, QGIS es tan versátil que es común imaginarlo cumpliendo tareas que no son del todo geográficas (para un listado más extenso de tareas no-SIG que pueden realizarse con QGIS, ver este hilo).

A continuación explicamos cómo generamos los certificados de cursos de QGIS Colombia. Para ello utilizamos funciones personalizadas, campos automáticos, capas virtuales y claro, el módulo Atlas. Además de ahorrarnos tiempo en una tarea repetitiva, obtenemos resultados muy bonitos.

 

Prerrequisitos

   ✅ ​ QGIS 3.10 (LTR) o superior.

   ✅  LIbrería qrcode para Python (¿cómo se instala?).

 

Datos

Tenemos dos tablas en una base de datos GeoPackage. Una de las tablas es espacial (ciudades de Colombia) y la otra es alfanumérica (listado de estudiantes).

La capa de ciudades la usamos para encuadrar el fondo del certificado en la ciudad en donde se impartió el curso, mostrando un mapa base de OpenStreetMap (cargado a través del complemento QuickMapServices). Sin embargo, esto es totalmente opcional, pues sin dicha capa también podríamos generar certificados, quizá con una imagen de un mapa estático.

Por otro lado, la tabla "listado" contiene toda la información alfanumérica que se muestra en el certificado y que se usa para nombrar el archivo PDF generado. Así luce la tabla "listado" (solo se muestra una estudiante de prueba):

Tabla listado

 

Expresiones y editor de funciones (Function editor)

A través del diálogo de expresiones definimos una función de Python encargada de generar una imagen de un código QR, que apunta a una URL para comprobar la validez de cada certificado. Además de generar el código QR en la carpeta ./qr/, la función arma y retorna la URL en donde estará publicado el certificado.

La función de Python que crea el código QR puede encontrarse en este enlace. Aquí un ejemplo de su salida cuando se usa desde el diálogo de expresiones:

Function editor

 

Campos automáticos (Default values)

Usamos campos automáticos para llamar la función que genera el código QR en el momento en que agregamos o editamos un registro en el listado de estudiantes. Los campos automáticos son como triggers en una base de datos, solo que los configuramos desde el cliente (QGIS) y para cualquier capa vectorial editable (no solo bases de datos). De esta forma llenamos el valor del campo qr de nuestra tabla "listado".

Default values

 

Capas virtuales (Virtual layers)

Usando capas virtuales creamos una vista espacial que une la capa de ciudades con el listado de estudiantes. Esta vista es la base para generar cada certificado, pues no solamente contiene los datos alfanuméricos del certificado, sino también la geometría de la ciudad en donde se impartió el curso o capacitación.

La sentencia SQL que define la vista mencionada se puede encontrar en este enlace, y así luce su configuración en QGIS:

Virtual layer

 

Atlas

El módulo Atlas de QGIS nos permite generar series de mapas de manera automática, iterando los registros (espaciales o no) de una tabla determinada.

En el caso de los certificados de QGIS Colombia, la capa que iteramos es la vista llamada capa_atlas. De esta capa obtenemos toda la información alfanumérica que se mostrará en el certificado. En el aspecto espacial, nos interesa únicamente el bounding box (o extent) de cada registro, por ello ocultamos la geometría de la ciudad en la cual se llevó a cabo el evento (talleres, cursos, capacitación, etc.).

Atlas configuration

 

¡Certificado!

El siguiente es un ejemplo de certificado generado con QGIS:

Certificado de ejemplo

¡Nos encanta el resultado 👌!

 

Materiales

El material mencionado en este post está disponible en nuestra cuenta de GitHub:

https://github.com/qgisco/Certificados-QGIS-Colombia

Te invitamos a utilizar estos materiales en tus proyectos (revisa la licencia en caso de hacerlo 👍).

 

Conclusiones

  • Cuando las expresiones de QGIS no son suficientes para tu caso de uso, utiliza el editor de funciones para agregar tus propias expresiones. En este caso, construimos una función que crea un código QR. Para el usuario final la definición de la función estará oculta, y solo interactuará con ella a través de una expresión (ejemplo: qr('evento', 'taller', '80.423.347')).
  • QGIS te permite configurar campos automáticos (similares a los triggers en una base de datos) para cualquier capa vectorial editable.
  • Si tienes buenos fundamentos en SQL, seguro te interesa conocer las capas virtuales. Puedes usar funciones espaciales y toda la sintaxis (¡y el poder!) de SQL para crear nuevas capas de manera virtual.
  • El módulo Atlas de QGIS te permite automatizar la generación de salidas gráficas iterando los registros (que pueden ser espaciales o no) de una tabla.
  • QGIS soluciona un sinnúmero de retos en el ámbito de la información geográfica, pero también puedes considerarlo como herramienta completa cuando tengas retos que solo requieran trabajar con información alfanumérica.
blog comments powered by Disqus