Criando legenda com a nova funcionalidade de símbolos definidos por dados no QGIS?


8

Eu tenho um grande conjunto de dados geológicos que preciso exibir usando um conjunto padrão de símbolos e cores do setor. Os símbolos e cores são atributos dos dados. Eu tenho usado o recurso de símbolos definidos por dados da compilação de desenvolvimento do QGIS (revisão de código b805894) para exibir os dados de acordo com seus atributos. Isso funciona perfeitamente em termos de exibição correta dos dados na janela do mapa.

O problema surge quando tento criar uma legenda no compositor. As cores definidas pelos dados exibidas no mapa não são exibidas na legenda.

Aqui estão algumas capturas de tela. O primeiro mostra a janela do mapa. Você pode ver o problema se manifestando na caixa Camadas à esquerda. Os símbolos são todos de cor preta.

A segunda captura de tela mostra a janela do compositor com uma legenda.

insira a descrição da imagem aqui

insira a descrição da imagem aqui


2
basta fazer upload de suas telas para imgur ou similar e postar o link. Edite sua postagem para adicionar as fotos. Além disso: Qual versão do QGIS você está usando (como o compositor passou por muitas mudanças no mestre atual do QGIS)?
quer

Respostas:


10

As legendas para simbologia definida por dados ainda não foram implementadas. Há uma solicitação de relatório / recurso de bug aberta: https://issues.qgis.org/issues/11491

Pensando nisso, a simbologia definida por dados é extremamente poderosa e pode resultar em centenas de variações diferentes de um símbolo em cor, forma, tamanho, rotação e assim por diante. Pode ser inviável ter realmente uma lenda nesse caso.


Atualização 2017-08:

O QGIS3 incluirá uma legenda automática para o tamanho definido pelos dados:

insira a descrição da imagem aqui


2
Obrigado pela resposta e por abrir a solicitação de recurso. A simbologia definida por dados é uma ferramenta fantástica, no entanto, seria muito limitada se não pudesse ser usada na produção de mapas profissionais.
precisa saber é o seguinte

RE: Atualização 2017-08: E as cores definidas por dados? Como é o caso do OP ...
Chris

Não @ Chris implementada, tanto quanto eu sei
Subterrâneo

Agora temos o QGIS 3.0; a legenda automática para tamanho definido por dados está disponível agora?
Cezar B

5

Não tenho certeza de que possa ser útil para casos complexos, mas consigo obter uma legenda falsa adicionando uma camada de forma.

Criei pontos na nova camada com o mesmo tipo de dados usado para definir a simbologia e localizei onde queria que a legenda aparecesse. Depois, defini a mesma simbologia para essa camada e mostrei os valores de dados correspondentes como rótulos.


Esse "truque" funciona especialmente bem para lendas de círculos graduados (ou similares)!
Andrew Tice

4

Eu tive que criar uma legenda para uma simbologia categorizada com base na cor definida pelos dados. O QGIS 3 não resolveu isso para mim. Então, eu criei um atributo que contém o valor da categoria concatenar com o código hexa da cor.

Criei um estilo aleatório categorizado para esta coluna, exportei esse estilo para arquivo sld e, em seguida, manipulei-o com regexp em um editor de texto para substituir para cada regra o código de cores de preenchimento pelo código mencionado no nome da categoria. Depois disso, limpei o valor da categoria e o nome da coluna filtrada e finalmente apliquei esse novo estilo à minha camada.

Desculpe, o link acima está em francês.

http://si.cenlr.org/24-11-2017


3

Estou tendo o mesmo problema com mapas geológicos no QGIS 2.10. Os mapas fornecidos possuem um código de cores CMYK (atualmente "YMCK") que pode ser interpretado com a seguinte fórmula:

color_cmyk( 
CASE WHEN substr("COLOR_CODE",3,1 ) IS 0 THEN 0
  WHEN substr("COLOR_CODE",3,1 ) IS 1 THEN 7
  WHEN substr("COLOR_CODE",3,1 ) IS 2 THEN 14
  WHEN substr("COLOR_CODE",3,1 ) IS 3 THEN 21
  WHEN substr("COLOR_CODE",3,1 ) IS 4 THEN 31
  WHEN substr("COLOR_CODE",3,1 ) IS 5 THEN 42
  WHEN substr("COLOR_CODE",3,1 ) IS 6 THEN 54
  WHEN substr("COLOR_CODE",3,1 ) IS 7 THEN 67
  WHEN substr("COLOR_CODE",3,1 ) IS 8 THEN 80
 ELSE 100
END,
CASE WHEN substr("COLOR_CODE",2,1 ) IS 0 THEN 0
  WHEN substr("COLOR_CODE",2,1 ) IS 1 THEN 7
  WHEN substr("COLOR_CODE",2,1 ) IS 2 THEN 14
  WHEN substr("COLOR_CODE",2,1 ) IS 3 THEN 21
  WHEN substr("COLOR_CODE",2,1 ) IS 4 THEN 31
  WHEN substr("COLOR_CODE",2,1 ) IS 5 THEN 42
  WHEN substr("COLOR_CODE",2,1 ) IS 6 THEN 54
  WHEN substr("COLOR_CODE",2,1 ) IS 7 THEN 67
  WHEN substr("COLOR_CODE",2,1 ) IS 8 THEN 80
  ELSE 100
END,
CASE WHEN substr("COLOR_CODE",1,1 ) IS 0 THEN 0
  WHEN substr("COLOR_CODE",1,1 ) IS 1 THEN 7
  WHEN substr("COLOR_CODE",1,1 ) IS 2 THEN 14
  WHEN substr("COLOR_CODE",1,1 ) IS 3 THEN 21
  WHEN substr("COLOR_CODE",1,1 ) IS 4 THEN 31
  WHEN substr("COLOR_CODE",1,1 ) IS 5 THEN 42
  WHEN substr("COLOR_CODE",1,1 ) IS 6 THEN 54
  WHEN substr("COLOR_CODE",1,1 ) IS 7 THEN 67
  WHEN substr("COLOR_CODE",1,1 ) IS 8 THEN 80
  ELSE 100
END, 
CASE WHEN substr("COLOR_CODE",4,1 ) IS 0 THEN 0
  WHEN substr("COLOR_CODE",4,1 ) IS 1 THEN 7
  WHEN substr("COLOR_CODE",4,1 ) IS 2 THEN 14
  WHEN substr("COLOR_CODE",4,1 ) IS 3 THEN 21
  WHEN substr("COLOR_CODE",4,1 ) IS 4 THEN 31
  WHEN substr("COLOR_CODE",4,1 ) IS 5 THEN 42
  WHEN substr("COLOR_CODE",4,1 ) IS 6 THEN 54
  WHEN substr("COLOR_CODE",4,1 ) IS 7 THEN 67
  WHEN substr("COLOR_CODE",4,1 ) IS 8 THEN 80
  ELSE 0
END)

mas isso dá a cor preta nas caixas de legenda.

Por isso, pensei que poderia resolver o problema usando o script acima para calcular um novo campo de cores que funcionou muito bem e retornou valores RGB como 255,200,220. Então eu tentei

Color_rgb("Color") 

para produzir uma cor definida por dados sem sorte (fórmula inválida)! Analisei o campo de cores em três campos - vermelho, verde e azul e a seguinte fórmula -

color_rgb("Red","Green","Blue")  

na caixa de fórmula de cores definidas pelos dados, deu a cor certa no mapa e a legenda não é mais preta - mas usa as configurações da rampa de cores para determinar a cor da legenda.

Parece que precisamos de uma opção na caixa suspensa de rampa de cores para especificar cores definidas pelos dados e, em seguida, deve usar qualquer cor definida pelos dados para produzir a legenda.

Todas as outras soluções alternativas são boas, mas ao usar o filtro de legenda no compositor de mapas, é necessário obter o resultado certo e não ter que ir a todas as caixas de legendas e digitar os códigos rgb nas opções de escolha de cores.


3

Eu tive discussões com a pesquisa geológica aqui na Austrália Ocidental e eles podem fornecer arquivos de dados com códigos geológicos, cores rgb e códigos de padrões geológicos. Apenas precisamos de um plug-in para ler esses arquivos e adicionar esses atributos aos polígonos, para que possam ser exibidos na legenda. Eu tentei a opção cor (rgb), mas o criador da legenda não vê essas cores.


0

Eu tive o mesmo problema ... rgb (vermelho, verde, azul) em que vermelho, verde e azul são valores listados na tabela de atributos, pode ser usado para definir a cor do mapa, mas a cor não é replicada no painel de camadas e depois não transferido para uma legenda no compositor de impressão ... o que eu precisava fazer era clicar em cada uma das camadas no painel de camadas e, em seguida, escolher e redefinir as cores no painel de camadas no mapa ... uma solução tediosa ... deve haver uma maneira de codificar isso no PyGIS ...

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.