Mostrando postagens com marcador QGis. Mostrar todas as postagens
Mostrando postagens com marcador QGis. Mostrar todas as postagens

segunda-feira, 3 de fevereiro de 2020

MODO ESCURO DO QGIS

Desde as últimas versões o QGIS possui um modo escuro, especialmente interessante para quem utiliza o software por longos períodos. Para ativar o modo escuro vá em "Configurações" > "Opções" e, na aba "Geral" > "Tema UI" escolha "Night Mapping". Dê OK, feche o QGIS e o abra novamente para que a alteração tenha efeito.


Na mesma tela de seleção do modo escuro também há algumas opções visuais interessantes que podem ser alteradas como o estilo do QGIS e o tamanho dos ícones no software.

domingo, 6 de maio de 2018

ATUALIZAÇÃO COM RELAÇÃO ESPACIAL NO QGIS

Quando for necessário atualizar um dado baseado em uma relação espacial no QGIS (por exemplo, os trechos de uma rodovia que interceptam Áreas de Proteção Ambiental), podemos utilizar o Editor de Funções do mesmo. Para isso:
1) Selecione a camada (com um clique do botão esquerdo sobre seu nome) a partir da qual se quer selecionar os dados (de acordo com o exemplo, os trechos de uma rodovia);
2) Abra a "Calculadora de campos" e clique na aba "Editor de funções";
3) Clique em "Novo arquivo", dê um nome (por exemplo, "consulta_espacial") e clique em "OK";
4) Substitua o texto que aparece na parte do editor de funções (ao lado direito) por:

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Personalizado')
def intersection_field_update(layername, column, feature, parent):
    layer = QgsMapLayerRegistry.instance().mapLayersByName(layername)[0]
    for feat in layer.getFeatures():
        if feature.geometry().intersects(feat.geometry()):
            return feat[column]

5) Clique em "Carregar";
Nesse momento, você criou uma função chamada intersection_field_update no grupo "Personalizado";
6) Volte para a aba "Expressão" e perceba que agora no conjunto de funções existe um grupo "Personalizado" com a função intersection_field_update. Use ela para atualizar ou criar um campo com dados de outra camada que possua relação de interceptar com a camada em uso - Será necessário passar dois parâmetros: a tabela e o campo (nessa ordem).

Considerando o exemplo, imaginemos um projeto com duas tabelas: trecho_rodovia e apa, e que na tabela apa exista um campo nome (com o nome da APA). Se utilizarmos a função para criar um campo virtual chamado apa na tabela trecho_rodovia, com o nome da APA que o trecho intercepta, teríamos o seguinte:


Obs.: O texto da expressão nesse caso é intersection_field_update('apa','nome') 

Ao clicar em OK será criado um campo virtual com o nome apa na tabela trecho_rodovia, onde estará o nome da APA que o trecho intercepta (ou nulo, se ele não intercepta nenhuma APA).

Após criar a função não é mais necessário fazer as etapas 3 a 5 para utilizá-la novamente, pois ela já estará criada. Essa função inclusive pode ser alterada para atingir outros objetivos (por exemplo, substituindo  o "intersects" por "within" é possível estabelecer uma relação de um elemento "estar contido" em outro - Como consta na postagem cujo link está nos agradecimentos).

Agradecimentos a Alexandre Miguel Freitas da Silva e Ciro Borges de Oliveira, que incentivaram essa pesquisa, e a Detlev (https://gis.stackexchange.com/users/45346/detlev), cuja resposta em (https://gis.stackexchange.com/questions/178522/update-field-based-on-spatial-query-qgis?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa) possibilitou o embasamento para essa postagem.

terça-feira, 27 de março de 2018

ADICIONANDO TILES NO QGIS

A partir da versão 2.18, o QGIS ganhou a funcionalidade de adicionar camadas de tiles que, superficialmente falando, são imagens divididas em diversas partes e níveis de zoom e, portanto, carregam apenas a parte que o usuário está visualizando e com resolução de acordo com seu nível de zoom, o que as torna muito mais rápidas do que adicionar a imagem como um todo (ou um arquivo raster).

Para adicionar imagens de um servidor de tiles ao seu projeto QGIS, vá ao Navegador (se ele não estiver aberto, basta ir em Exibir - Painéis - Navegador) e encontre a opção Tile Server (XYZ). Clique com o botão direito do mouse sobre ela e selecione New Connection...

Digite ou cole a URL dos tiles e dê OK. Exemplos:

Bing Aerial:
http://ecn.t3.tiles.virtualearth.net/tiles/a{q}.jpeg?g=1
Google Hybrid:
https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}
Google Satellite:
https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}
OpenStreetMap:
http://tile.openstreetmap.org/{z}/{x}/{y}.png

Dê um nome a esse Tile Server e clique em OK.

Pronto, o Tile Server já está configurado e disponível (se não estiver visualizando ele, basta clicar na seta para baixo ao lado de Tile Server (XYZ)). Para adicioná-lo ao seu projeto clique sobre o nome do Tile Server desejado, segure e arraste ele para as camadas na posição desejada.

segunda-feira, 21 de agosto de 2017

EDITANDO UM ARQUIVO DE PROJETO DO QGIS

Como o arquivo de projeto do QGIS é estruturado em formato XML, é possível alterar algumas de suas características editando o conteúdo de suas tags em um editor de texto simples (como o bloco de notas). Um exemplo de situação onde isso pode ser muito útil é a alteração de dados de uma conexão de bancos de dados - Na tag <datasource> temos o dbname (nome do banco de dados), o host (endereço IP) e a porta, entre outros. Basta substituir o valor antigo pelo desejado. 

Por exemplo, para alterar a conexão da "tabela", do "banco_antigo" em 192.168.0.100:5432 para o "banco_novo" em 192.168.0.101:5433, basta alterar a linha:
<datasource>dbname='banco_antigo' host=192.168.0.100 port=5432 sslmode=disable key='id' table="public"."tabela" sql=</datasource>
Por:
<datasource>dbname='banco_novo' host=192.168.0.101 port=5433 sslmode=disable key='id' table="public"."tabela" sql=</datasource>

A mesma estrutura vale para os arquivos de estilo de camadas. Um exemplo útil:
Como o QGIS não permite copiar / colar estilos entre tipos diferentes de elementos (ponto, linha ou polígono), essa edição também pode ser feita (no arquivo de estilo):
- Para copiar / colar nomes de campos, de um arquivo de estilo para outro, copiar / colar a tag <aliases>
- Para copiar / colar formatos de campos, de um arquivo de estilo para outro, copiar / colar a tag <edittypes>