É possível adicionar imagens aos painéis do Looker codificando um URL de imagem em um bloco de texto do Markdown. No entanto, as imagens nos blocos de texto são estáticas e não são atualizadas com base nos resultados. E se você quiser que uma imagem do painel mude dinamicamente com base em um valor de filtro selecionado pelo usuário?
Nesta página de práticas recomendadas, mostramos como criar uma imagem dinâmica de painel usando Liquid e o parâmetro html
.
A solução
A solução a seguir se baseia em um conjunto de dados de e-commerce que inclui um campo chamado users.state
, representando os estados em um conjunto de dados hipotético de e-commerce:
dimension: state { type: string sql: ${TABLE}.state ;; }
Digamos que você queira mostrar a imagem da bandeira de um estado em um painel que será atualizado com base no estado escolhido por um usuário para filtrar os resultados do painel.
Há três etapas para criar a imagem dinâmica do painel:
- Crie uma dimensão de imagem no LookML.
- Crie um bloco de painel de imagens dinâmicas.
- Adicione filtros e toques finais ao painel.
Etapa 1: criar uma dimensão de imagem em LookML
Para criar uma dimensão de imagem em LookML:
- Primeiro, navegue até o projeto e visualize o arquivo que contém a dimensão a que você quer adicionar imagens. Em seguida, crie uma dimensão com base nesse campo, especificamente para exibir as imagens.
-
Adicione um parâmetro
html
para definir uma{% if %}
instrução condicional do Liquid com a variávelvalue
para cada valor em que você quer mostrar uma imagem.Por exemplo, a dimensão
state_flag_image
a seguir estabelece uma condição para mostrar as imagens especificadas (com tagshtml <img>
) quando o valor destate
é"California"
,"New York"
,"Colorado"
ou"Illinois"
. Para todos os outros estados, você pode mostrar um ícone "Nenhuma imagem disponível":dimension: state_flag_image { type: string sql: ${state} ;; html: {% if state._value == "California" %} <img src="https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg" height="170" width="255"> {% elsif state._value == "New York" %} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Flag_of_New_York.svg/1200px-Flag_of_New_York.svg.png" height="170" width="255"> {% elsif state._value == "Colorado" %} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Flag_of_Colorado.svg/255px-Flag_of_Colorado.svg.png" height="170" width="255"> {% elsif state._value == "Illinois"%} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Flag_of_Illinois.svg/1200px-Flag_of_Illinois.svg.png" height="170" width="255"> {% else %} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/No_image_available.svg/1024px-No_image_available.svg.png" height="170" width="170"> {% endif %} ;; }
-
Crie uma condição de valor para cada valor em que você quer mostrar uma imagem. Você também pode criar um campo de imagem dinâmica usando a variável
value
do Liquid, conforme descrito na postagem da comunidade Como adicionar imagens às visualizações.
Em seguida, crie um bloco de painel para a dimensão de imagem.
Etapa 2: criar um bloco de painel de imagens dinâmicas
Agora que a dimensão da imagem (state_flag_image
) foi criada, você pode criar uma análise detalhada que vai se tornar o bloco dinâmico do painel de imagens.
Crie sua análise detalhada com os seguintes critérios:
-
Adicione um filtro para a dimensão original (neste caso,
state
) e defina qualquer valor. Isso fará com que a imagem "nenhuma imagem disponível" seja exibida inicialmente, já que nenhum valor de filtro específico está selecionado. Esse valor será atualizado de acordo com o que o usuário selecionar para o filtro do painel. -
Selecione a dimensão da imagem (neste caso,
state_flag_image
) e outras dimensões que possam ser necessárias para a consulta que determina a imagem. Por exemplo, se você quiser incluir uma data, adicione "data" etc. - Mude o limite de linhas para uma linha.
-
Mude o tipo de visualização para valor único e oculte todas as outras colunas, exceto a dimensão da imagem (
state_flag_image
).
Inicialmente, a opção "Explorar" vai mostrar a imagem "Nenhuma imagem disponível" na visualização de valor único renderizada no painel Visualização. A imagem de exibição muda de acordo com o valor do filtro que o usuário seleciona no dashboard final:
Salve a Análise de dados em um dashboard como um título.
Etapa 3: adicionar filtros e toques finais ao painel
Agora você precisa adicionar filtros ao painel. Os filtros no painel vão atualizar o filtro na análise detalhada para mudar a imagem mostrada com base na seleção do usuário.
No modo de edição do painel, crie o filtro:
- Abra a janela Adicionar filtro
- Selecione o campo para filtrar. O campo de filtro precisa ser a dimensão em que a dimensão da imagem se baseia. Neste exemplo, o campo do filtro será state.
- Selecione o bloco de imagem da etapa 2 na guia Blocos a serem atualizados.
- Selecione a dimensão original (estado, neste caso) no menu suspenso inline Campo para filtrar. Selecione outros blocos para atualizar conforme necessário.
- Personalize o filtro como quiser. Se você selecionar a opção de controle Avançado, desmarque a opção Permitir vários valores de filtro, que é ativada automaticamente para a opção de controle Avançado.
Agora, o bloco de imagem será atualizado com a seleção de filtro do usuário.
Quando um usuário escolhe filtrar por "Califórnia", o painel mostra a bandeira e os dados do estado:
Quando um usuário escolhe filtrar por "Colorado", o painel mostra a bandeira e os dados do estado do Colorado: