Visão geral

Este documento descreve como criar relatórios geoespaciais dinâmicos usando o Places Insights e Looker Studio. Libere o valor dos seus dados de localização capacitando as partes interessadas não técnicas a responder às próprias perguntas. Este guia mostra como transformar relatórios estáticos em ferramentas interativas de mapa de calor para análise de mercado, sem precisar escrever SQL para cada solicitação. Permita o acesso a dados de localização complexos, preenchendo a lacuna entre a engenharia de dados e o Business Intelligence.
A adoção desse padrão arquitetônico oferece vários benefícios importantes:
- Representação visual de dados:transforma os dados do Insights de Lugares em mapas e gráficos interativos que comunicam imediatamente a densidade e as tendências espaciais.
- Exploração simplificada sem SQL:permite que os membros da equipe, como analistas de mercado ou planejadores imobiliários, filtrem dados dinamicamente usando parâmetros predefinidos (por exemplo, mudando "Cidade" ou "Horário do dia" usando menus suspensos). Eles podem explorar os dados sem escrever uma única linha de SQL.
- Colaboração perfeita:os recursos de compartilhamento padrão do Looker Studio permitem distribuir esses insights interativos com segurança.
Fluxo de trabalho da solução
O fluxo de trabalho a seguir estabelece uma arquitetura de relatórios eficiente. Ele passa de uma linha de base estática para um aplicativo totalmente dinâmico, garantindo a correção dos dados antes de introduzir a complexidade.
Pré-requisitos
Antes de começar, siga estas instruções para configurar o Insights de Lugares. Você vai precisar de acesso ao Looker Studio, que é uma ferramenta sem custo financeiro.
Etapa 1: estabelecer uma linha de base geoespacial estática
Antes de introduzir a interatividade, estabeleça uma consulta de base e verifique se ela é renderizada corretamente no Looker Studio. Use o Insights de Lugares e os recursos geoespaciais do BigQuery para agregar dados em grades hexagonais usando o sistema de indexação H3. Isso vai produzir uma saída de consulta que pode ser usada com o tipo de mapa preenchido do Looker Studio para visualização.
1.1 Conectar dados
Use a consulta estática a seguir para estabelecer a conexão inicial. Ela tem como destino um local fixo (Londres) e uma categoria (Restaurantes) para validar o pipeline de dados.
SELECT
h3_index,
`carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
restaurant_count
FROM (
SELECT WITH AGGREGATION_THRESHOLD
`carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
COUNT(*) AS restaurant_count
FROM
-- Note: Change 'gb' to your target country code (e.g., 'us')
`places_insights___gb.places`
WHERE
'London' IN UNNEST(locality_names)
AND 'restaurant' IN UNNEST(types)
GROUP BY
h3_index
)
ORDER BY
restaurant_count DESC;
Observação sobre a agregação espacial
Essa consulta usa uma função da
CARTO Analytics
Toolbox (carto-os) disponível publicamente no Google Cloud BigQuery. A função
H3_FROMGEOGPOINT converte pontos de localização específicos em células H3
,
um sistema que divide o mundo em células de grade hexagonais.
Usamos essa transformação porque o mapa preenchido do Looker Studio exige polígonos (formas) para renderizar cores. Ao converter pontos em formas hexagonais, podemos visualizar a densidade de empresas em uma área específica, em vez de plotar milhares de pontos sobrepostos.
Observação sobre o limite de agregação
Todas as consultas do Insights de Lugares exigem a cláusula WITH AGGREGATION_THRESHOLD.
Essa proteção de privacidade garante que os dados só sejam retornados se a contagem agregada for de 5 ou mais.
No contexto dessa visualização, se uma célula de grade H3 contiver menos de 5 restaurantes, ela será omitida do conjunto de resultados e aparecerá vazia no mapa.
Para implementar isso no Looker Studio:
- Crie um relatório em branco.
- Selecione BigQuery como o conector de dados.
- Escolha CONSULTA PERSONALIZADA no menu à esquerda e selecione o ID do projeto de faturamento.
- Cole a consulta de base estática acima no editor.
- Limpe os parâmetros Usar SQL legado, Ativar intervalo de datas e Ativar endereço de e-mail do visualizador parâmetros.
- Clique em Adicionar.
1.2 Configurar a visualização geoespacial
Depois que os dados estiverem conectados, configure o Looker Studio para reconhecer os dados de limite H3 corretamente:
- Adicione uma visualização de mapa preenchido à tela do relatório no menu Adicionar um gráfico.
- Verifique se o campo
h3_geo, que contém a geometria do polígono, está definido como o tipo de dados Geoespacial.- Clique no ícone Editar fonte de dados (lápis) ao lado do nome da conexão.
- Se
h3_geoestiver definido como Texto (ABC), use o menu suspenso para selecionar Geográfico > Geoespacial, - Clique em Concluído.
- Mapeie o campo
h3_indexpara Localização (atuando como o identificador exclusivo). - Mapeie o campo
h3_geopara Campo geoespacial (atuando como a geometria do polígono). - Mapeie o campo
restaurant_countpara Métrica de cor.
Isso vai renderizar um mapa da densidade de restaurantes por célula H3. O azul mais escuro (opção de cor padrão) indica uma célula com uma contagem maior de restaurantes.

Etapa 2: implementar parâmetros dinâmicos
Para tornar o relatório interativo, vamos adicionar controles que permitam ao usuário selecionar as seguintes opções:
- Localidade: controla a cidade em que o relatório se concentra.
- Dia da semana: filtra lugares com base no dia em que estão abertos, aproveitando o registro
regular_opening_hoursno esquema. - Hora do dia: filtra lugares com base no horário de funcionamento deles, comparando com os campos
start_timeeend_time.
Para fazer isso, transmita os parâmetros selecionados pelo usuário diretamente para uma consulta modificada do Insights de Lugares no momento da execução. No editor de fontes de dados do Looker Studio, é necessário definir explicitamente esses parâmetros como variáveis digitadas.
No Looker Studio, selecione o menu Recurso e clique em Gerenciar fontes de dados adicionadas. No painel que aparece, selecione EDIT na fonte de dados SQL personalizada do BigQuery que adicionamos anteriormente.
Na janela "Editar conexão", selecione ADICIONAR UM PARÂMETRO. Vamos adicionar três parâmetros com os valores abaixo.
| Nome do parâmetro | Tipo de dados | Valores permitidos | Lista de valores (precisa corresponder ao banco de dados exatamente) | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
p_locality |
Texto | Lista de valores |
|
||||||||||||||||
p_day_of_week |
Texto | Lista de valores |
|
||||||||||||||||
p_hour_of_day |
Texto | Lista de valores |
|
Exemplo de configuração para o parâmetro p_hour_of_day.

Para o parâmetro p_hour_of_day, preste atenção à coluna Value.
Como a consulta SQL usa CAST(@p_hour_of_day AS TIME), os valores transmitidos do Looker Studio precisam estar no formato HH:MM:SS (relógio de 24 horas).
Depois de configurar e salvar todos os três parâmetros, modifique a conexão SQL personalizada do BigQuery para referenciar essas variáveis usando a sintaxe @.
Para fazer isso, clique em "Editar conexão" e cole a consulta modificada abaixo:
SELECT
h3_index,
`carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
restaurant_count
FROM (
SELECT WITH AGGREGATION_THRESHOLD
`carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
COUNT(*) AS restaurant_count
FROM
`places_insights___gb.places`
WHERE
-- Dynamic locality filter based on parameter
@p_locality IN UNNEST(locality_names)
AND 'restaurant' IN UNNEST(types)
AND business_status = 'OPERATIONAL'
AND EXISTS (
SELECT 1
FROM UNNEST(
CASE @p_day_of_week
WHEN 'monday' THEN regular_opening_hours.monday
WHEN 'tuesday' THEN regular_opening_hours.tuesday
WHEN 'wednesday' THEN regular_opening_hours.wednesday
WHEN 'thursday' THEN regular_opening_hours.thursday
WHEN 'friday' THEN regular_opening_hours.friday
WHEN 'saturday' THEN regular_opening_hours.saturday
WHEN 'sunday' THEN regular_opening_hours.sunday
END
) AS hours
WHERE hours.start_time <= CAST(@p_hour_of_day AS TIME)
AND hours.end_time >= TIME_ADD(CAST(@p_hour_of_day AS TIME), INTERVAL 1 HOUR)
)
GROUP BY
h3_index
)
ORDER BY
restaurant_count DESC;
Clique em "Reconectar" para salvar a edição. Na consulta modificada, observe as novas variáveis, como @p_hour_of_day, que se correlacionam aos nomes de parâmetros que acabamos de configurar.
Volte à tela do relatório para expor esses parâmetros ao usuário final:
- Adicione três controles de lista suspensa ao relatório.
- Para cada controle, defina o campo de controle para corresponder aos parâmetros recém-criados:
- Controle 1:
p_locality - Controle 2:
p_day_of_week - Controle 3:
p_hour_of_day
- Controle 1:
O relatório final vai ficar assim. A mudança de um valor em um dos controles suspensos vai acionar o Looker Studio para buscar os dados solicitados do Insights de Lugares antes de visualizar no mapa.

Etapa 3: compartilhar os resultados
Use a ferramenta de compartilhamento integrada ao Looker Studio para compartilhar o relatório. Isso vai permitir que os leitores atualizem dinamicamente a visualização com base nos parâmetros selecionados nas listas suspensas.
Conclusão
Esse padrão cria uma ferramenta de relatórios escalonável e interativa que aproveita o poder computacional do BigQuery para veicular dados agregados do Insights de Lugares ao Looker Studio. Essa arquitetura evita as armadilhas de tentar visualizar conjuntos de dados brutos enormes e oferece aos usuários finais a flexibilidade de explorar dados em diferentes dimensões, como tempo, local e tipo de empresa, quase em tempo real. Essa é uma ferramenta poderosa para dar flexibilidade às partes interessadas não técnicas para explorar os dados.
Próximas etapas
Explore outras variações de relatórios dinâmicos parametrizando diferentes partes do esquema do Insights de Lugares:
- Análise dinâmica de concorrentes:crie um parâmetro para nomes de
brandpara permitir que os usuários alternem instantaneamente o mapa de calor entre diferentes concorrentes para ver a saturação relativa deles em um mercado. Consulte Sobre os dados do Insights de Lugares dados para saber a disponibilidade de dados da marca. - Seleção interativa de sites:adicione parâmetros para
price_level(por exemplo, "Moderado" em vez de "Caro") eratingmínimo para permitir que as equipes imobiliárias filtrem dinamicamente áreas que correspondam a perfis demográficos específicos. - Áreas de captação personalizadas:em vez de filtrar por nome da cidade, permita que os usuários definam áreas de estudo personalizadas.
- Com base no raio:crie três parâmetros numéricos: p_latitude, p_longitude e p_radius_meters. As coordenadas podem ser obtidas nas APIs da Plataforma Google Maps, incluindo a API Geocoding. Na consulta, insira esses valores na função ST_DWITHIN:
ST_DWITHIN(point, ST_GEOGPOINT(@p_longitude, @p_latitude), @p_radius_meters)
- Com base em polígonos:para formas personalizadas complexas (como territórios de vendas), os usuários não podem inserir texto de geometria com facilidade. Em vez disso, crie uma tabela de consulta no BigQuery contendo as geometrias de forma e um nome amigável (por exemplo, "Zona A"). Crie um parâmetro de texto
p_zone_nameno Looker Studio para permitir que os usuários selecionem a zona e usem uma subconsulta para recuperar a geometria da funçãoST_CONTAINS.
- Com base no raio:crie três parâmetros numéricos: p_latitude, p_longitude e p_radius_meters. As coordenadas podem ser obtidas nas APIs da Plataforma Google Maps, incluindo a API Geocoding. Na consulta, insira esses valores na função ST_DWITHIN:
Colaboradores
- David Szajngarten | Engenheiro de relações com desenvolvedores
- Henrik Valve | Engenheiro de DevX