Como adicionar simbologia em grade no QGis

É relativamente comum ver em mapas a presença de ícones em grade para representar o que é oferecido em um ponto de interesse. Veja na imagem abaixo um exemplo, que mostra a infraestrutura de um camping em trilha:

Neste tutorial vamos ver de forma relativamente fácil como gerenciar e dispor símbolos em grade usando o QGis. E não se intimide com códigos Python que serão apresentados aqui: já estão prontos e caberá a você apenas copiar e colá-los onde for necessário.

Criando uma camada vetorial

Crie uma camada vetorial de pontos, um atributo para conter quais símbolos serão mostrados para cada feature e outro atributo para conter o nome (rótulo). Por exemplo, criaremos uma camada chamada geometria. Nessa camada teremos um atributo chamado formas, que nada mais é do que uma lista, separada por vírgula, contendo as formas geométricas que serão apresentadas. Exemplo: quadrado, circulo, triangulo. Além disso, teremos outro atributo chamado nome, que será usado na configuração do rótulo. Veja abaixo que a sequência de símbolos está na mesma ordem em que foi especificado no atributo formas:

Criando a simbologia

Vá nas propriedades da camada e depois em Symbology. Crie uma simbologia baseada em regras. Crie a primeira regra com a seguinte configuração:

  • Label: quadrado
  • Rule: nenhuma (Deixe em branco)
  • Marker: coloque algo que represente um quadrado, na cor que preferir.

É importante que o Label seja idêntico ao que está listado no atributo formas. Ficará da seguinte forma:

Aplicando o código Python

Ainda dentro da simbologia da regra que criamos, encontre a seção que trata do Offset e clique no botão circulado em vermelho, indicado abaixo:

Na tela que se abrirá clique em Edit…, altere a aba para Function Editor, clique no botão de adicionar (canto inferior esquerdo). Na caixa de texto a direita vamos colocar um código Python. Clique no botão abaixo para baixar o código Python. Descompacte o arquivo zip baixado, abra o arquivo texto, copie o código e depois cole-o na caixa de texto. Importante: esse procedimento de copiar e colar o código deverá ser feito apenas 1 vez.

Clique em Save and Load Functions para salvar o código. Depois mude a aba da tela acima para Expression e insira: make_symbols_grid(). Assim:

Clique em Ok. Na tela de edição da regra, role para baixo até encontrar a opção Edit symbol layer. Clique no botão indicado abaixo e depois em Edit…

Na aba Expression, insira: has_symbol(‘quadrado’). Assim:

Clique em Ok para finalizar.

Configurando o rótulo

Na tela de propriedades da camada, vá para as configurações de rótulo. Vá no menu Placement. Em General Settings, escolha a opção Offset from Point. Agora clique no botão indicado abaixo:

Na aba Expression insira: adjust_symbols_grid_label(). Assim:

Por último, configure o quadrante da seguinte forma:

Repita os procedimentos acima

O que fizemos até agora vale apenas para o símbolo quadrado. Repita tudo novamente para cada símbolo restante: círculo, triangulo e estrela. Lembre-se que não precisamos mais copiar e colar o código Python, mas as expressões (aba Expressions) ainda precisam ser inseridas, mudando onde for necessário. Por exemplo: inserimos has_symbol(‘quadrado’) para quadrado, mas quando for fazer para circulo, coloque has_symbol(‘circulo’).

Finalizando

O último passo é definir algumas variáveis da camada para controlar como você quer mostrar os símbolos. Na propriedades da camada, vá no menu Variables. Adicione variáveis conforme a imagem abaixo:

O nome das variáveis precisa ser exatamente esses. Aqui vai uma descrição do que cada variável significa:

  • grid_attribute: indica qual atributo contém a lista de símbolos a apresentar. No nosso exemplo, a lista de valores está no atributo formas;
  • grid_rows: quantidade de linhas.
  • grid_columns: quantidade de colunas.
  • grid_margin: espaçamento entre símbolos.

Os valores acima podem mudar, evidentemente, a depende do seu projeto. Todos eles são obrigatórios. Altere os valores de grid_rows, grid_columns e grid_margin para entender o que cada variável controla. Após criar ou alterar esses valores clique em Apply.

Tudo o que fizemos até aqui não é preciso ser feito novamente. Se você criar uma nova feature na camada, ela será disposta em grade automaticamente usando as mesmas configurações.

Observações importantes

Algumas observações importantes:

  • Todos os símbolos utilizados precisam ter o mesmo tamanho.
  • É possível que toda vez que você abra o projeto, a simbologia fique desorganizada. Se isso acontecer, apenas entre novamente nas propriedades da simbologia e clique em aplicar. Isso se deve, provavelmente, a algum bug do QGis.
  • Caso tenha problemas em visualizar o resultado na primeira vez, feche o projeto e entre novamente.

Dúvidas? Deixe aí nos comentários!

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *