O QGIS é uma ferramenta brilhante para automação baseada em Python em forma de scripts personalizados ou até mesmo plugins. Os primeiros passos para escrever o código personalizado podem ser um pouco difíceis, já que você precisa entender a API do Python que é um pouco complexa. A série de Desenvolvimento de Plugins do QGIS que inicia hoje tem como objetivo o desenvolvimento de um plug-in personalizado totalmente funcional capaz de gravar valores de atributos de uma camada de origem para uma camada de destino com base em sua proximidade espacial.

Nesta parte, mencionarei o básico, o que é bom saber antes de começar.

1. Documentação

Diferentes versões do QGIS vêm com diferentes APIs do Python. A documentação deve ser encontrada em https://qgis.org, sendo a mais recente a versão 3.2. Observe que, se você acessar diretamente o site http://qgis.org/api/, verá os documentos atuais.

Alternativamente, você pode o “apt install qgis-api-doc” em seu sistema Ubuntu e rodar “python -m SimpleHTTPServer[port]” dentro de “/usr/share/qgis/doc/api”. Você encontrará a documentação em “http://localhost:8000” (se você não fornecer o número da porta) e estará disponível mesmo quando estiver off-line.

2. Estrutura Básica da API

Abaixo uma visão resumida do que está disponível dentro da API:

  • Pacote qgis.core traz todos os objetos básicos como QgsMapLayer, QgsDataSourceURI, QgsFeature, etc
  • O pacote qgis.gui traz elementos GUI que podem ser usados ​​dentro do QGIS como QgsMessageBar ou QgsInterface
  • qgis.analysis, qgis.networkanalysis, qgis.server e qgis.testing pacotes que não serão abordados na série
  • Módulo qgis.utils que vem com iface (muito útil no console do QGIS Python)

3. Console Python do QGIS

Usar o console Python é a maneira mais fácil de automatizar o fluxo de trabalho do QGIS. Pode ser acessado pressionando Ctrl + Alt + P ou navegando pelo menu em Plugins -> Python Console. Como mencionado acima o módulo iface do qgis.utils é exposto por padrão dentro do console, permitindo-lhe interagir com o QGIS GUI. Experimente os exemplos a seguir, para fazer um teste inicial:

iface.mapCanvas().scale() # retorna a escala atual do mapa
iface.mapCanvas().zoomScale(100) # zoom para escala 1:100 
iface.activeLayer().name() # obtém o nome da camada ativa 
iface.activeLayer().startEditing() # realizar edição

Essa foi uma breve introdução à API do QGIS, no próximo post falaremos mais profundamente sobre o console do QGIS.