Puoi aggiungere immagini alle dashboard di Looker inserendo un URL immagine in un riquadro di testo Markdown. Tuttavia, le immagini nei riquadri di testo sono statiche e non verranno aggiornate in base ai risultati. Cosa succede se vuoi che un'immagine della dashboard cambi in modo dinamico in base a un valore del filtro selezionato dall'utente?
Questa pagina delle best practice mostra come ottenere un'immagine della dashboard dinamica utilizzando Liquid e il parametro html
.
La soluzione
La seguente soluzione si basa su un set di dati di e-commerce che include un campo denominato users.state
, che rappresenta gli stati in un ipotetico set di dati di e-commerce:
dimension: state { type: string sql: ${TABLE}.state ;; }
Supponiamo che tu voglia visualizzare l'immagine della bandiera di uno stato in una dashboard che si aggiorna in base allo stato in base al quale un utente sceglie di filtrare i risultati della dashboard.
Per creare l'immagine della dashboard dinamica, devi completare tre passaggi:
- Crea una dimensione immagine in LookML.
- Crea un riquadro della dashboard con un'immagine dinamica.
- Aggiungi filtri della dashboard e ultimi ritocchi.
Passaggio 1: crea una dimensione immagine in LookML
Per creare una dimensione immagine in LookML:
- Innanzitutto, vai al progetto e al file della visualizzazione contenente la dimensione a cui vuoi aggiungere le immagini. Poi, crea una nuova dimensione basata su questo campo, in particolare per la visualizzazione delle immagini.
-
Aggiungi un parametro
html
per definire un'istruzione condizionale{% if %}
di Liquid con la variabilevalue
per ogni valore per cui vuoi visualizzare un'immagine.Ad esempio, la seguente dimensione
state_flag_image
stabilisce una condizione per la visualizzazione delle immagini specificate (con taghtml <img>
) quando il valore distate
è"California"
,"New York"
,"Colorado"
o"Illinois"
. Per tutti gli altri stati, puoi mostrare un'icona "Nessuna immagine disponibile":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 %} ;; }
-
Crea una condizione di valore per ogni valore per cui vuoi visualizzare un'immagine. In alternativa, puoi creare un campo immagine dinamico utilizzando la variabile
value
Liquid, come descritto nel post della scheda Community Come aggiungere immagini alle visualizzazioni.
Successivamente, puoi creare un riquadro della dashboard per la dimensione dell'immagine.
Passaggio 2: crea un riquadro della dashboard con immagini dinamiche
Ora che la dimensione immagine (state_flag_image
) è stata creata, puoi creare un'esplorazione che diventerà il riquadro della dashboard delle immagini dinamiche.
Crea l'esplorazione con i seguenti criteri:
-
Aggiungi un filtro per la dimensione originale (in questo caso
state
). Imposta il filtro per qualsiasi valore (in questo caso, il flag di stato mostrerà l'immagine "Nessuna immagine disponibile", poiché non è selezionato alcun valore di filtro specifico). Questo valore del filtro verrà aggiornato in base a ciò che l'utente seleziona per il filtro della dashboard. -
Seleziona la dimensione immagine (in questo caso
state_flag_image
) e le altre dimensioni che potrebbero essere necessarie per la query che determina l'immagine (ad esempio, se vuoi prendere in considerazione una data, puoi includere la data e così via). - Modifica il limite di righe impostandolo su una riga.
-
Modifica il tipo di visualizzazione in una visualizzazione con un singolo valore e nascondi tutte le altre colonne tranne la dimensione immagine (
state_flag_image
).
L'esplorazione mostrerà il primo risultato immagine nella visualizzazione di un valore singolo visualizzata nel riquadro Visualizzazione. L'immagine visualizzata cambia in base al valore del filtro selezionato dall'utente nella dashboard finale:
Salva l'esplorazione in una dashboard come riquadro.
Passaggio 3: aggiungi i filtri della dashboard e i tocchi finali
Ora devi aggiungere i filtri della dashboard. I filtri nella dashboard aggiorneranno il filtro nell'esplorazione per modificare l'immagine visualizzata in base alla selezione dell'utente.
Dalla modalità di modifica della dashboard, crea il filtro:
- Apri la finestra Aggiungi filtro.
- Seleziona il campo in base al quale applicare il filtro. Il campo del filtro deve essere la dimensione su cui si basa la dimensione immagine. In questo esempio, il campo per il filtro sarà state.
- Seleziona il riquadro dell'immagine del passaggio 2 nella scheda Riquadri da aggiornare.
- Seleziona la dimensione originale (in questo caso state) nel menu a discesa Campo da filtrare in linea. Seleziona altri riquadri da aggiornare come preferisci.
- Personalizza il filtro come preferisci. Se selezioni l'opzione di controllo Avanzate, assicurati di deselezionare l'opzione Consenti più valori filtro, che viene attivata automaticamente per l'opzione di controllo Avanzate.
Ora il riquadro dell'immagine verrà aggiornato in base alla selezione del filtro dell'utente.
Quando un utente sceglie di filtrare in base a "California", la dashboard mostra il flag e i dati dello stato della California:
Quando un utente sceglie di filtrare in base a "Colorado", la dashboard mostra il flag e i dati dello stato del Colorado: