建立自訂地圖區域

注意:在 Looker 22.14 中,我們已在 map_layer 參數中加入 GeoJSON 檔案支援功能。

Looker 包含多個內建地圖圖層,但您也可以定義自訂地圖區域來顯示地理資料。假設您有三個社區的平均年齡資料表,如下所示:

顧客社區 顧客平均年齡
市區 19.5292
Eastside 54.4626
Westside 34.9534

您可能會將「顧客鄰里」對應至特定地理區域,以便在地圖上顯示。如要完成這項操作,請按照本頁所述的步驟操作。

準備區域資料

如要準備區域資料,您需要一個資料檔案,其中包含每個區域的地理形狀,以及將區域與資料庫中資料建立關聯的中繼資料。

Looker 會使用 TopoJSON 格式,以精簡的方式儲存這類資料。您可以輕鬆使用許多常見的形狀檔案格式建立 TopoJSON 檔案,也可以使用線上工具自行繪製,詳情請參閱「將形狀檔案轉換為 TopoJSON」社群文章。

為了說明本例,我們已準備好提供此對應項目的 TopoJSON 檔案。TopoJSON 檔案中的每個區域都有一個名為 neighborhood 的屬性,與 Customer Neighborhood 欄位的值相符,而該欄位在 LookML 專案中定義為名為 neighborhood 的維度。

上傳區域資料

如要將區域資料匯入 Looker,請將 TopoJSON 檔案拖曳至專案的「File Browser」部分。這項資料會與 LookML 程式碼一併提交,並以 LookML 專案中的其他程式碼相同方式更新。

建立地圖圖層

專案中已有區域資料,因此您需要在 LookML 模型中建立地圖圖層。

您可以使用 map_layer 參數在模型檔案中新增定義:

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

file 參數會參照專案中含有區域資料的檔案名稱,而 property_key 則是您要在 Looker 中公開的資料集屬性。如果不確定鍵是什麼,請省略屬性鍵,Looker 會嘗試選取適當的鍵。

提示:您也可以在圖層定義中指定 url 而非 file,藉此使用在其他線上位置代管的 TopoJSON 檔案:

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

將地圖圖層與資料建立關聯

接下來要做的,就是套用 map_layer_name 參數,將檢視畫面中的維度 neighborhood 與新建立的地圖圖層建立關聯。

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

這會告訴 Looker,這個維度的值與地圖圖層公開的 property_key 相關聯。這也讓 Looker 知道可以在地圖上顯示這項資料。

查看地圖

使用 neighborhood 維度的查詢現在可透過「探索」頁面在地圖上顯示: