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 Ebenendefinitionurl
anstelle vonfile
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: