Introducción al desarrollo con PyQGIS
Leonardo Cardona
Germán Carrillo

Introducción al desarrollo con PyQGIS
2019
1era Jornada de Talleres


Introducción

1era Jornada de Talleres


¿Dónde usar Python en QGIS?
¿Dónde usar Python en QGIS?

1era Jornada de Talleres

1. Consola de Python y editor de scripts

Ctrl
+
Alt
+
P
¿Dónde usar Python en QGIS?

1era Jornada de Talleres

2. Macros del proyecto

Proyecto --> Propiedades...
¿Dónde usar Python en QGIS?

1era Jornada de Talleres

3. Acciones
Propiedades de la capa --> Acciones

¿Dónde usar Python en QGIS?

1era Jornada de Talleres

4. Expresiones personalizadas en Python
Diálogo de expresiones --> Editor de Funciones

¿Dónde usar Python en QGIS?

1era Jornada de Talleres

5. Algoritmos de Geoprocesamiento
Ventana de Procesamiento --> Scripts

¿Dónde usar Python en QGIS?

1era Jornada de Talleres

6. Plugins

¿Dónde usar Python en QGIS?

1era Jornada de Talleres

7. Scripts 'standalone' (sin la GUI de QGIS)

Bases de Python

1era Jornada de Talleres




PyQt5

1era Jornada de Talleres


Framework de aplicaciones y Toolkit de GUI
Open Source
Multiplataforma: Windows, OS X, Linux, iOS y Android
Lenguaje: C++

Qt desde Python
Open Source
Soporte comercial (Riverbank Computing)
Licenciamiento: GNU GPL v3 y Riverbank Commercial License
Librerías QtCore, QtGui, QtWidgets

1era Jornada de Talleres

QtCore
QtGui
QtWidgets
QtCore
QPA
Sistema operativo
Hardware
QtGui
Interfaces de usuario de alto nivel
Utiliza las funcionalidades proporcionadas por QtCore y QtGui
Clases: QDialog, QMenu, QMessageBox, QWizard, QLabel
Controles para Integración de la interfaz de usuario
Acceso a las ventanas, buffers de dibujo y OpenGL
Clases: QRegExpValidator, QCursor, QFont, QColor
Infraestructura central de Qt
No hay dependencia de los recursos de la interfaz de usuario
Clases: QCoreApplication, QSettings, QLocale
QtWidgets
Obteniendo ayuda para PyQt5

1era Jornada de Talleres




Tipos de Widgets de PyQt5

1era Jornada de Talleres






Formularios en PyQt5

1era Jornada de Talleres

QGIS custom widgets
Buttons
Input Widgets

Display Widgets
Formulario
Recursos en PyQt5

1era Jornada de Talleres






Comunicar objetos: SIGNAL/SLOT

1era Jornada de Talleres

Adaptado de: https://doc.qt.io/qt-5/signalsandslots.html
Sirve para:
- Comunicar objetos
- Facilitar su separación

QSettings: Preferencias de usuario

1era Jornada de Talleres



PyQGIS

1era Jornada de Talleres

Recursos y documentación

1era Jornada de Talleres

QGIS API (C++):
QGIS API (Python):
PyQGIS Cookbook:
https://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/

Librerías PyQGIS

1era Jornada de Talleres

Proporciona acceso a la funcionalidades básicas de SIG
- Formatos de datos
- Tipos de geometrías
- Sistemas de coordenadas
qgis.core |


QgsCoordinateReferenceSystem

Fuente: https://hub.packtpub.com/learning-qgis-python-api/
Librerías PyQGIS

1era Jornada de Talleres

Proporciona interfaces gráficas de usuario que pueden ser reutilizables
- QgsMapCanvas
- QgsMapTool
- QgsScaleComboBox
qgis.gui |



Librerías PyQGIS

1era Jornada de Talleres

qgis. analysis |
- QgsKernelDensityEstimation
- QgsTinInterpolator
- QgsNativeAlgorithms



qgis. server |
Tomado de https://docs.qgis.org/2.14/en/docs/gentle_gis_introduction/spatial_analysis_interpolation.html
https://www.geodose.com/2017/11/qgis-heatmap-using-kernel-density.html
¡¡¡Empecemos!!!

1era Jornada de Talleres

1. Consola de Python y editor de scripts
2. Macros del proyecto
3. Acciones
4. Expresiones personalizadas en Python
5. Algoritmos de Geoprocesamiento
6. Plugins
7. Scripts 'standalone' (sin la GUI de QGIS)
Ahora sigues tú...

1era Jornada de Talleres


Introducción al desarrollo con PyQGIS
By Grupo de Usuarios QGIS Colombia
Introducción al desarrollo con PyQGIS
1ra Jornada de Talleres QGIS-Co
- 1,170