Benutzerdefinierte Kartenregionen erstellen

Hinweis:In Looker 22.14 wird für den Parameter map_layer die Unterstützung für GeoJSON-Dateien hinzugefügt.

Looker enthält mehrere integrierte Kartenebenen. Sie können aber auch benutzerdefinierte Kartenbereiche definieren, um geografische Daten anzuzeigen. Angenommen, Sie haben eine Tabelle mit dem Durchschnittsalter für drei Stadtteile:

Kundenumgebung Durchschnittsalter des Kunden
Innenstadt 19,5292
Eastside 54.4626
Westside 34.9534

Sie können Kundennähe einer bestimmten geografischen Region zuordnen, damit sie auf einer Karte visualisiert werden kann. Folgen Sie dazu der Anleitung auf dieser Seite.

Regionsdaten vorbereiten

Zur Vorbereitung der Regionsdaten benötigen Sie eine Datendatei mit den geografischen Formen der einzelnen Regionen sowie Metadaten, die die Region mit den Daten in der Datenbank verknüpfen.

Looker verwendet das Format TopoJSON, um diese Daten kompakt zu speichern. TopoJSON-Dateien können ganz einfach aus vielen gängigen Shapefile-Dateien erstellt werden. Formate erstellen oder selbst eins mit Online-Tools zeichnen, wie in den Communitybeitrag: Shapefiles in TopoJSON umwandeln

Für dieses Beispiel ist bereits eine TopoJSON-Datei vorbereitet, die diese Zuordnung bereitstellt. Jede Region in der TopoJSON-Datei hat das Attribut „neighborhood“, das den Werten des Felds Kundenumgebung entspricht. Dieses Feld ist im LookML-Projekt als Dimension namens neighborhood definiert.

Regionsdaten hochladen

Zum Importieren der Regionsdaten in Looker können Sie die TopoJSON-Datei per Drag-and-drop in den Abschnitt Dateibrowser des Projekts ziehen. Für diese Daten wird zusammen mit dem LookML-Code ein Commit durchgeführt und sie wie jeder andere Code in einem LookML-Projekt aktualisiert.

Kartenebene erstellen

Nachdem Sie nun die Regionsdaten im Projekt haben, müssen Sie eine Kartenebene im LookML-Modell erstellen.

Sie können eine Definition in der Modelldatei mit dem Parameter map_layer hinzufügen:

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

Der Parameter file verweist auf den Namen der Datei im Projekt, die die Regionsdaten enthält. property_key ist die Eigenschaft des Datensatzes, den Sie in Looker freigeben möchten. Wenn Sie nicht sicher sind, was der Schlüssel ist, lassen Sie den Eigenschaftsschlüssel einfach weg. Looker versucht dann, den richtigen Schlüssel auszuwählen.

Tipp:Sie können auch eine TopoJSON-Datei verwenden, die an anderer Stelle online gehostet wird. Geben Sie dazu in der Ebenendefinition url anstelle von file an:

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

Kartenebene mit Daten verknüpfen

Jetzt müssen Sie nur noch die Dimension neighborhood in der Ansicht mit der neu erstellten Kartenebene verknüpfen. Verwenden Sie dazu den Parameter map_layer_name.

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

Dadurch wird Looker mitgeteilt, dass die Werte dieser Dimension dem property_key zugeordnet sind, der von der Kartenebene offengelegt wird. Außerdem wird Looker mitgeteilt, dass diese Daten auf einer Karte dargestellt werden können.

Karte aufrufen

Abfragen mit der Dimension neighborhood können jetzt auf der Explore-Seite auf einer Karte dargestellt werden: