Renderizar polígonos por ordem de tamanho
Hoje vou postar uma dica de como fazer o controle de ordem da renderização dos polígonos
Há um tempo atrás uma colega de serviço me perguntou sobre a possibilidade de visualizar polígonos sobrepostos por outros vetores dentro da mesma camada. Ela estava utilizando a camada das unidades de conservação, disponível na IDE-SISEMA, e nesse arquivo, algumas das unidades de conservação se sobrepõem tornando difícil a visualização dos dados quando utilizamos um estilo de camada opaco (com preenchimento).
Para isso, o QGIS oferece possibilidade de configurar a ordem de renderização das camadas. Essa renderização, por padrão, obedece a ordem das feições dentro da camada, feições mais novas ficam por cima de feições mais antigas.
Para exemplo, criei uma camada temporária de rascunho, que está disponível também nas versões 2.14 e 2.18 onde desenhei um polígono sobrepondo outro.
Na imagem abaixo mostra dois polígonos, onde o polígono maior, número 2, sobrepõe o polígono 1.
Veja agora com o fundo opaco.
Para alterar a renderização, basta ir nas propriedades da camada > Sybology (simbologia) > Layer rendering (renderização da camada). e marcar a opção Control feature rendering order (Controlar ordem da renderização das feições) e clicar no botão que irá habilitar logo a frente da opção marcada.
Na janela que abrir vamos configurar a ordem da renderização.
No campo EXPRESSION (Espressão) basta inserir a fórmula $area, em Asc/Desc configurar como Descending (Descendente) e clicar em OK.
No final o resultado será esse:
A fórmula $area, introduzida no campo de expressão faz o calculo da área em cada um das feições dentro da camada, no nosso caso, não é necessário fazer a conversão para um sistema plano (UTM) para fazer esse calculo nem a conversão do cálculo para alguma unidade de medida de área, hectare por exemplo, pois precisamos apenas renderizar as polígonos por ordem de tamanho, fazendo com que as feições que tenham áreas menores fiquem por cima das áreas que possuem áreas maiores.
Caso queira fazer o calculo para inserir na tabela de atributos ou exibir em algum lugar, lembre-se de fazer tais conversões.
É possível também utilizar de outras regras para fazer a renderização das camadas, de a cordo com a necessidade de cada projeto realizado , utilizando para isso uma ou mais campos da tabela de atributos ou uma expressão mais bem elaborada na calculadora que o QGIS apresenta.
Nesse exemplo foi utilizado o QGIS 3.0 e pode ser replicado nas outras versões dele.