Criar regiões de mapas personalizadas

Nota: no Looker 22.14, foi adicionado suporte para ficheiros GeoJSON ao parâmetro map_layer.

O Looker inclui várias camadas de mapas incorporadas, mas também pode definir regiões de mapas personalizadas para apresentar dados geográficos. Suponhamos que tem uma tabela de idades médias de três bairros, da seguinte forma:

Vizinhança do cliente Idade média dos clientes
centro da cidade 19,5292
eastside 54,4626
westside 34,9534

Pode querer mapear o bairro do cliente para uma região geográfica específica, para que possa ser visualizado num mapa. Para isso, siga os passos descritos nesta página.

Prepare os dados de região

Para preparar os dados de regiões, precisa de um ficheiro de dados que contenha as formas geográficas de cada região e também metadados que associem a região aos dados na base de dados.

O Looker usa um formato denominado TopoJSON para armazenar estes dados de forma compacta. Os ficheiros TopoJSON podem ser criados facilmente a partir de muitos formatos de ficheiros de formas comuns ou pode desenhar um com ferramentas online, conforme detalhado na publicação da comunidade Converter ficheiros de formas em TopoJSON.

Para os fins deste exemplo, já existiria um ficheiro TopoJSON preparado que fornece este mapeamento. Cada região no ficheiro TopoJSON tem uma propriedade denominada neighborhood que corresponde aos valores do campo Bairro do cliente, que é definido no projeto LookML como uma dimensão denominada neighborhood.

Carregue dados de regiões

Para importar os dados de região para o Looker, pode arrastar e largar o ficheiro TopoJSON na secção Explorador de ficheiros do projeto. Estes dados são confirmados juntamente com o código LookML e atualizados como qualquer outro código num projeto do LookML.

Crie a camada de mapa

Agora que tem os dados da região no projeto, tem de criar uma camada de mapa no modelo LookML.

Pode adicionar uma definição no ficheiro de modelo através do parâmetro map_layer:

map_layer: my_neighborhood_layer {
  file: "neighborhoods.topojson"
  property_key: "neighborhood"
}

O parâmetro file faz referência ao nome do ficheiro no projeto que contém os dados da região, e property_key é a propriedade do conjunto de dados que quer expor no Looker. Se não tiver a certeza do que é a chave, omita simplesmente a chave da propriedade e o Looker tenta selecionar a chave adequada.

Sugestão: também pode usar um ficheiro TopoJSON alojado noutro local online, especificando url em vez de file na definição da camada:

map_layer: my_neighborhood_layer {
  url: "https://raw.githubusercontent.com/cooluser/JSON_Stuff/master/Neighborhoods.topoJSON"
  property_key: "neighborhood"
}

Associe a camada do mapa a dados

A única coisa que resta fazer é associar a dimensão neighborhood na vista à camada do mapa recém-criada aplicando o parâmetro map_layer_name.

dimension: neighborhood {
  sql: ${TABLE}.neighborhood ;;
  map_layer_name: my_neighborhood_layer
}
  

Isto indica ao Looker que os valores desta dimensão estão associados ao property_key exposto pela camada de mapa. Também permite que o Looker saiba que é possível apresentar estes dados num mapa.

Ver o mapa

As consultas que usam a dimensão neighborhood podem agora ser apresentadas num mapa a partir da página Explorar: