É 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!