Criar regiões de mapa personalizadas

Observação:no Looker 22.14, o suporte a arquivos GeoJSON foi adicionado ao parâmetro map_layer.

O Looker inclui várias camadas de mapa integradas, mas você também pode definir regiões de mapa personalizadas para mostrar dados geográficos. Suponha que você tenha uma tabela com a idade média de três bairros, conforme abaixo:

Vizinhança do cliente Idade média do cliente
centro da cidade 19,5292
leste 54.4626
oeste 34.9534

Você pode mapear o bairro do cliente para uma região geográfica específica, para que possa ser visualizado em um mapa. Para fazer isso, siga as etapas descritas nesta página.

Preparar dados de região

Para preparar os dados da região, você precisa de um arquivo de dados que contenha as formas geográficas de cada região e também metadados que associem a região aos dados no banco de dados.

O Looker usa um formato chamado TopoJSON para armazenar esses dados de maneira compacta. Os arquivos TopoJSON podem ser criados facilmente a partir de muitos formatos de shapefile comuns ou desenhados com ferramentas on-line, conforme detalhado na postagem da comunidade Converter shapefiles em TopoJSON.

Para fins deste exemplo, já haveria um arquivo TopoJSON preparado que fornece esse mapeamento. Cada região no arquivo TopoJSON tem uma propriedade chamada neighborhood que corresponde aos valores do campo Vizinhança do cliente, que é definido no projeto do LookML como uma dimensão chamada neighborhood.

Fazer upload dos dados da região

Para importar os dados da região para o Looker, arraste e solte o arquivo TopoJSON na seção File Browser do projeto. Esses dados serão confirmados com o código do LookML e atualizados como qualquer outro código em um projeto do LookML.

Criar a camada do mapa

Agora que você tem os dados da região no projeto, é necessário criar uma camada de mapa no modelo do LookML.

É possível adicionar uma definição no arquivo de modelo usando o 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 arquivo no projeto que contém os dados da região, e o property_key é a propriedade do conjunto de dados que você quer expor no Looker. Se você não tiver certeza de qual é a chave, simplesmente omita a chave da propriedade. O Looker vai tentar selecionar a chave adequada.

Dica:também é possível usar um arquivo TopoJSON hospedado em outro lugar on-line, 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"
}

Associar a camada do mapa a dados

Agora, basta associar a dimensão neighborhood na visualização à camada de mapa recém-criada aplicando o parâmetro map_layer_name.

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

Isso informa ao Looker que os valores dessa dimensão estão associados ao property_key exposto pela camada do mapa. Ele também informa ao Looker que é possível exibir esses dados em um mapa.

Como consultar o mapa

As consultas que usam a dimensão neighborhood agora podem ser mostradas em um mapa na página "Explorar":