Como definir bordas de polígonos automaticamente para melhorar a legibilidade do mapa ao renderizar mapas temáticos?

10

Ao mapear um valor como uma cor para renderizar um mapa temático, as bordas dos objetos podem alterar bastante a legibilidade do mapa. Por exemplo, neste mapa temático dos condados dos EUA com bordas pretas: insira a descrição da imagem aqui

Existem muitos objetos pequenos em algumas áreas, e isso os faz parecer mais escuros por causa das bordas, sem levar em consideração a cor temática. Se as bordas são desenhadas com 30% de opacidade, resulta no seguinte mapa: insira a descrição da imagem aqui

Obviamente, este é melhor para comunicar os dados mapeados nos objetos. No entanto, ter uma taxa de opacidade estática também pode prejudicar a legibilidade, pois torna os limites dos objetos menos visíveis, o que é um problema se houver apenas alguns objetos grandes. Além disso, a alteração na legibilidade também depende do contraste entre as cores da borda e do preenchimento.

Existem formas automáticas de encontrar a boa cor / opacidade para as camadas? Qual software GIS fornece um método para lidar adequadamente com esse problema?

jeremy-george
fonte

Respostas:

7

Você pode ter uma abordagem diferente para esse problema.
1) da largura da linha: unidades de largura da linha = unidades do mapa.
2) regras de escala de mapa: mapas próximos = linhas grossas, mapas distantes = linhas finas.

No QGIS, você pode fazer as duas coisas.

insira a descrição da imagem aqui

Pablo
fonte
5

Meu efeito favorito de legibilidade / estética é um "preenchimento gradiente". Se você estiver usando o software ArcGIS, esse efeito é bastante simples de implementar ... Aqui está um bom post da equipe da ESRI no Mapping Center:

Bandas de tonalidade rápidas

BrianPeasley
fonte
Eu gosto desse efeito, mas apenas lendo o post do blog parece um pouco mais difícil para meus olhos (talvez seja devido à escolha de cores). Alguém mais achou isso?
DJQ
1
Eu fiz uma versão semelhante desse efeito armazenando o interior dos polígonos em buffer, colorindo o buffer da mesma forma que o poli, mas alterando a saturação da cor do buffer ... Gostei mais dessa solução do que as imagens borradas mostradas no blog postar!
22411 BrianPeasley
3
Esse efeito não funcionaria para as imagens em pequena escala da pergunta. O gradiente seria imperceptível ou preencheria completamente os polígonos menores.
22411 Sean
3

O exemplo que você mostra é, na verdade, sobre a tonalidade da cor, além da opacidade. Ao definir uma opacidade mais alta, você altera a cor de saída para um cinza claro. Tente configurá-lo para um cinza claro para começar com zero de transparência, isso lhe dará mais controle e terá um efeito semelhante.

Um método simples de obter um controle mais granular da opacidade é simplesmente dividir o conjunto de dados em camadas separadas com base na área do polígono, no perímetro ou em uma mistura dos dois. Em seguida, basta definir a opacidade de maneira diferente para as diferentes camadas. Como alternativa, renderize a espessura da linha com base na área do polígono.

Matthew Snape
fonte
2

No ArcMap, você pode definir uma escala de referência para o Quadro de Dados e, na camada Exibir Propriedades, marque "Símbolos de Escala quando uma escala de referência estiver configurada".

Defina a escala de referência na maior escala que você usará. Esta será a escala da largura do traço à medida que você diminui o zoom.

Se isso não der os resultados desejados, você também pode criar cópias da camada para exibir em várias escalas. Por exemplo, tenha uma camada simbolizada para 1: 24.000 e defina para não aparecer além de 1: 24.000, outra camada em 1: 100.000 e defina para não aparecer além de 100.000 ou além de 24.000 etc. Os números reais dependerão dos seus dados e predileções de design próprio.

Sean
fonte
2

Se sua ênfase está na cor do preenchimento, por que não evitar o uso de uma borda nos polígonos? Isso deve escalar melhor em pequenas escalas.

DavidF
fonte
1
mas então você não pode distinguir entre polígonos adjacentes que têm a mesma cor
neuhausr
2

Não estou convencido pelo método de 'tonalidade' de BrianP - parece bom, mas você pode classificar a tonalidade apenas em um polígono, fornecendo 'lados' do mapa que na verdade não existem. Veja o link para ver o que você pensa.

Eu prefiro Uma variação da ideia de Pablo: as bordas alteram a opacidade à medida que você aumenta o zoom. Em um nível alto, a opacidade é baixa, enquanto as bordas pretas aumentam a opacidade.

Isso pode ser feito no KML para Google Earth usando a funcionalidade 'regiões'.

Trevesy
fonte
2

O limite de legibilidade do símbolo do mapa para um símbolo linear é de 0,1 mm (de acordo com Saliszczew KA, Einfuhrung in die Kartographie e muitos outros livros de mapeamento).

Para melhorar a legibilidade das bordas dos polígonos, tente obedecer a esse limite. Para isso, você certamente precisa converter esse valor em tamanho de pixel de acordo com a resolução do dispositivo de tela.

(No caso de você ler francês, ver a linha do meio: insira a descrição da imagem aqui)

julien
fonte
1

Existe uma alternativa simples no QGIS para obter o mesmo resultado que "Símbolos de escala quando uma escala de referência é definida" no ArcGIS. Você só precisa definir a largura do símbolo nas unidades do mapa, e não em mm.

Por exemplo, se você deseja definir um recurso de polilinha para exibir uma largura de 0,8 mm em um mapa em 1: 30.000 (com unidades de metros do mapa) e aumentar ou diminuir proporcionalmente à escala do mapa:

  1. Abra as propriedades da camada e escolha a guia Estilo

  2. Mude a unidade para 'Mapear unidade'

  3. Calcule o que 0,8 mm representa em m em um mapa da escala 1: 30.000: 0,8 / 1000 * 30000 = 24m e insira esse valor (24) na caixa Largura .

É isso aí!

Como método alternativo, você pode deixar a Unidade como milímetros e inserir a expressão a seguir na 'Substituição definida pelos dados' da largura - acessada clicando no ícone da expressão à direita da caixa Largura

0.8 * 30000 / @map_scale
Jonathan Porter
fonte