Crear regiones de mapa personalizadas

Nota: En Looker 22.14, se añadió compatibilidad con archivos GeoJSON al parámetro map_layer.

Looker incluye varias capas de mapa predefinidas, pero también puede definir regiones de mapa personalizadas para mostrar datos geográficos. Supongamos que tiene una tabla con las edades medias de tres barrios, como se muestra a continuación:

Barrio del cliente Edad media de los clientes
centro de la ciudad 19,5292
Eastside 54.4626
Westside 34.9534

Puede que quieras asignar Barrio del cliente a una región geográfica concreta para que se visualice en un mapa. Para ello, sigue los pasos que se describen en esta página.

Preparar datos de región

Para preparar los datos de las regiones, necesitas un archivo de datos que contenga las formas geográficas de cada región y metadatos que asocien la región con los datos de la base de datos.

Looker usa un formato llamado TopoJSON para almacenar estos datos de forma compacta. Los archivos TopoJSON se pueden crear fácilmente a partir de muchos formatos de archivos de formas habituales. También puedes dibujar uno con herramientas online, como se explica en la publicación de la comunidad Convertir archivos de formas a TopoJSON.

En este ejemplo, ya habría un archivo TopoJSON preparado que proporcionaría esta asignación. Cada región del archivo TopoJSON tiene una propiedad llamada neighborhood que coincide con los valores del campo Barrio del cliente, que se define en el proyecto LookML como una dimensión llamada neighborhood.

Subir datos de regiones

Para importar los datos de la región en Looker, puede arrastrar y soltar el archivo TopoJSON en la sección Explorador de archivos del proyecto. Estos datos se confirmarán junto con el código LookML y se actualizarán como cualquier otro código de un proyecto LookML.

Crear la capa de mapa

Ahora que tienes los datos de la región en el proyecto, debes crear una capa de mapa en el modelo de LookML.

Puedes añadir una definición en el archivo de modelo con el parámetro map_layer:

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

El parámetro file hace referencia al nombre del archivo del proyecto que contiene los datos de la región, y property_key es la propiedad del conjunto de datos que quieres exponer en Looker. Si no sabes cuál es la clave, omítela y Looker intentará seleccionar la clave adecuada.

Nota: También puedes usar un archivo TopoJSON alojado en otro sitio online. Para ello, especifica url en lugar de file en la definición de la capa:

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

Asociar la capa del mapa con los datos

Lo único que queda por hacer es asociar la dimensión neighborhood de la vista con la capa de mapa recién creada aplicando el parámetro map_layer_name.

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

De esta forma, se indica a Looker que los valores de esta dimensión están asociados al property_key expuesto por la capa del mapa. También indica a Looker que es posible mostrar estos datos en un mapa.

Ver el mapa

Las consultas que usan la dimensión neighborhood ahora se pueden mostrar en un mapa de la página Explorar: