En esta respuesta de gis.stackexchange.com se propone un plugin tipo botón checkeable con la antigua versión de QGIS 2 y que permite desplegar valores de ráster como tooltips. El comportamiento de este tipo de plugins no está en la oferta de Plugin Builder 3 por lo cual sería útil tenerlo disponible como plantilla. La importancia de este tipo de plugins radica en que sólo nos interesa que al hacer click en él se prepare para iniciar una acción y no se despliegue ningún tipo adicional de QDialog.
domingo, 27 de diciembre de 2020
lunes, 3 de agosto de 2020
sábado, 11 de enero de 2020
Plantilla para visualizar elementos de un QDialog con PyQGIS
Aunque con la Python Console es posible visualizar de manera independiente muchos de los diferentes elementos Qt presentes en QGIS, con muy pocas líneas de código también se puede crear una clase "plantilla" para incluir varios de ellos y visualizarlos a todos de manera simultánea antes de crear un plugin. La clase Dlg que se va a proponer a continuación emplea un objeto QDialog al cual se le incorpora una QgsComboBox y una QListWidget.
sábado, 23 de noviembre de 2019
Obtener las coordenadas de pantalla a partir de las coordenadas del Map Canvas en un plugin con PyQGIS 3
En el código que se presenta a continuación se pretende, cada vez que se lance un plugin para QGIS 3, que éste aparezca alineado con el vértice superior izquierdo de la View del Map Canvas. Esto corresponde a la posición de un QPoint(0,0). Por tanto, sólo se necesita el método 'mapToGlobal' de la clase QgsMapCanvas para convertirlo en un QPoint con las coordenadas de la pantalla.
jueves, 15 de agosto de 2019
Cómo pasar de Multi Part a Single Part utilizando PyQGIS 3
En un post anterior se consideró este aspecto con PyQGIS 2. Hoy lo planteamos de nuevo con PyQGIS 3 porque QGIS 3 considera y graba por defecto las geometrías como multiparte (ahora denominadas collect geometries) y esto ha hecho que algunos métodos de PyQGIS 2 no sean útiles en PyQGIS 3 haciendo más complejo el tratamiento de las geometrías; especialmente las de los polígonos (listas de listas). Si han sido trabajadas con QGIS 3 son multipartes así presenten un sólo rasgo. Por esta razón se recomienda, en lo posible, trabajar con los formatos WKT (Well Known Text).
jueves, 20 de diciembre de 2018
Adaptación de un plugin, de QGIS 2 a QGIS 3, para desplegar ráster values como tooltip
Una reserva que impide cambiar rápidamente desde QGIS 2 a QGIS 3 es la imposibilidad de adaptar en un tiempo perentorio todas aquellas aplicaciones, especialmente los plugin, que se han elaborado con Python 2. Hasta ahora, según mi experiencia, los desarrolladores de QGI3 han preservado prácticamente intactas la mayoría de las clases y, aunque numerosos, los cambios son proporcionalmente menores a lo que cabría esperar.
lunes, 17 de diciembre de 2018
Cómo colocar un plugin "Always On Top" en QGIS 3
En versiones anteriores de QGIS el comportamiento por defecto era mantener el plugin "Always On Top" pero esta situación cambió en la versión 3 de QGIS. Para algunos plugins que se desarrollan puede ser indiferente este comportamiento. Sin embargo, para aquellos que dependen de obtener información mediante un click del ratón en el Map Canvas era tedioso mantenerlo "On Top" haciendo click en el QDialog del plugin minimizado en la barra inferior del escritorio cada vez que se producía el referido click.
sábado, 24 de marzo de 2018
Obtener coordenadas del movimiento del ratón mediante una clase personalizada en PyQGIS en un plugin de QGIS 3
En un post anterior se consideró la forma de obtener las coordenadas del Map Canvas mediante un click del ratón utilizando una clase personalizada en PyQGIS. Este procedimiento fue conducido a través de la Python Console. Sin embargo, en un plugin hay que saber ubicar la clase dentro del plugin y modificar los parámetros de entrada para que en lugar de imprimir a la Python Console lo haga, por ejemplo, en un elemento Qt como una QTextBrowser.
jueves, 8 de marzo de 2018
Cómo conectar una QComboBox para actualizar adecuadamente las capas en un plugin con QGIS 3
En un post anterior se trataba el mismo tema para la versión anterior de QGIS. Empleaba la clase QgsLegendInterface que actualmente fue removida en QGIS 3. Este documento señala que la remoción fue realizada en favor de la clase QgsLayerTreeNode y otras no especifícadas.
jueves, 1 de marzo de 2018
Plugin para extraer tiles georreferenciados de alta resolución con Google Satellite y PyQGIS3
En un post anterior se introdujo un procedimiento para conectarse al servicio de Google Satellite (que incluía la nueva versión de QGIS3), grabar una imagen de alta resolución del Map Canvas y, posteriormente, georreferenciarla de forma adecuada mediante gdal_translate.
miércoles, 28 de febrero de 2018
Plugin para producir rásteres con valores enteros aleatorios en QGIS 3
En la versión anterior de QGIS se produjo un complemento (plugin) que permitía producir rásteres con valores enteros aleatorios y cuyo algoritmo se basaba en este post. Ésto es muy útil porque permite obtener pequeños rásteres, alineados con un ráster base, donde los cambios de sus valores enteros, producto de diferentes operaciones, pueden ser fácilmente corroborados.
QgsMapLayerComboBox con filtros en QGIS 3
En el post anterior se consideró la inclusión de objetos Qt del tipo QFileDialog porque hasta ese momento había comprobado que era uno de los que tenía los mayores cambios para la migración a la nueva versión de QGIS 3. En el post actual voy a considerar las QgsMapLayerComboBox con filtros.
QFileDialog del tipo 'getSaveFileName' en un plugin con PyQGIS3
En estos primeros días de trabajo con PyQGIS3 se ha podido comprobar que si no se asume una estrategia de "divide y vencerás" tendremos problemas en la migración de nuestros viejos plugins a la nueva versión de QGIS. La adaptación del código Python puro y de las clases de QGIS no reviste tanta dificultad como la relacionada a los elementos PyQt; los cuales abordaremos a continuación.
lunes, 26 de febrero de 2018
Primer plugin funcional en QGIS3
Como es bien sabido por los usuarios de QGIS, el viernes 23/02/2018 fue liberada la versión 3 (Girona). No obstante, sólo ayer 25/02/2018 estuvo disponible para ser bajada de los servidores para el sistema operativo Windows.