Introducción al desarrollo con PyQGIS
Leonardo Cardona
Germán Carrillo
Introducción al desarrollo con PyQGIS
2019
2da Jornada de Talleres
BUCARAMANGA
Introducción
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
¿Dónde usar Python en QGIS?
1. Consola de Python y editor de scripts
Ctrl
+
Alt
+
P
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
2. Macros del proyecto
Proyecto --> Propiedades...
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
3. Acciones
Propiedades de la capa --> Acciones
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
4. Expresiones personalizadas en Python
Diálogo de expresiones --> Editor de Funciones
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
5. Algoritmos de Geoprocesamiento
Ventana de Procesamiento --> Scripts
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
6. Plugins
2da Jornada de Talleres
¿Dónde usar Python en QGIS?
7. Scripts 'standalone' (sin la GUI de QGIS)
2da Jornada de Talleres
Bases de Python
2da Jornada de Talleres
PyQt5
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
2da Jornada de Talleres
Librerías QtCore, QtGui, QtWidgets
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
2da Jornada de Talleres
Obteniendo ayuda para PyQt5
2da Jornada de Talleres
Tipos de Widgets de PyQt5
2da Jornada de Talleres
Formularios en PyQt5
QGIS custom widgets
Buttons
Input Widgets
Display Widgets
Formulario
2da Jornada de Talleres
Recursos en PyQt5
2da Jornada de Talleres
Comunicar objetos: SIGNAL/SLOT
Adaptado de: https://doc.qt.io/qt-5/signalsandslots.html
Sirve para:
- Comunicar objetos
- Facilitar su separación
2da Jornada de Talleres
QSettings: Preferencias de usuario
2da Jornada de Talleres
PyQGIS
2da Jornada de Talleres
Recursos y documentación
QGIS API (C++):
QGIS API (Python):
PyQGIS Cookbook:
https://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/
2da Jornada de Talleres
Librerías PyQGIS
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/
2da Jornada de Talleres
Librerías PyQGIS
Proporciona interfaces gráficas de usuario que pueden ser reutilizables
- QgsMapCanvas
- QgsMapTool
- QgsScaleComboBox
qgis.gui |
2da Jornada de Talleres
Librerías PyQGIS
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
2da Jornada de Talleres
¡¡¡Empecemos!!!
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)
2da Jornada de Talleres
Ahora sigues tú...
2da Jornada de Talleres
Introducción al desarrollo con PyQGIS
By Grupo de Usuarios QGIS Colombia
Introducción al desarrollo con PyQGIS
2da Jornada de Talleres QGIS-Co (Bucaramanga)
- 1,230