開始使用 BigQuery GIS

本教學課程將為您介紹 BigQuery GIS。BigQuery GIS 讓您可以在 BigQuery 中輕鬆進行分析,並將地理空間資料視覺化。

目標

在本教學課程中,您將執行下列作業:

  • 使用 BigQuery GIS 函式將經度與緯度的資料欄轉換為地理點。
  • 執行查詢作業,搜尋有超過 30 輛可供出租自行車的 Citi Bike 站點。
  • BigQuery Geo Viz 中以視覺化的方式呈現結果

費用

本教學課程使用的 Google Cloud Platform 收費元件包括:

  • BigQuery

您需要支付下列費用:

  • 在 BigQuery 的公開資料集裡查詢資料
    • 每個月前 1 TB 免費。
    • 如果您使用固定費率,則查詢費用會包含在每個月的固定費率中。

事前準備

  1. 登入您的 Google 帳戶。

    如果您沒有帳戶,請申請新帳戶

  2. 選取或建立 Google Cloud Platform 專案。

    前往「Manage resources」(管理資源) 頁面

  3. 請確認您已啟用 Google Cloud Platform 專案的計費功能。

    瞭解如何啟用計費功能

  4. 新專案會自動啟用 BigQuery。如要在現有專案中啟用 BigQuery,請前往 啟用BigQuery API。

    啟用 API

匯出樣本資料

本教學課程使用 Google Cloud Platform 公開資料集方案提供的資料集。公開資料集是儲存在 BigQuery 中且可供一般大眾使用的任何資料集。公共資料集是 BigQuery 託管的資料集,讓您能夠存取與整合到您的應用程式中。 Google 為這些資料集的儲存空間付費,並透過專案提供資料的公開存取權。您只需要支付資料查詢費用 (每月前 1 TB 免費,相關規定詳閱查詢費率詳情)。

紐約市 Citi Bike 行程資料集

紐約市 Citi Bike 行程

Citi Bike 是美國最大的自行車共享計劃,在曼哈頓、布魯克林、皇后區和澤西市共設有 10,000 輛自行車及 600 個站點。這個資料集包含 Citi Bike 自 2013 年 9 月推出以來所記錄的所有行程,並且每日更新。資料已由 Citi Bike 處理過,移除了工作人員為了維修檢驗系統而騎乘的行程,以及時間長度在 60 秒內的任何行程,因為這些都視為誤始行程。

您可以透過查看 citibike_stations 資料表的詳情開始在 BigQuery 主控台探索這些資料:

前往 citibik_stations 結構定義

在此資料表中,以下有三個資料欄與本教學課程有關:

  • bike_stations.longitude — 站點的經度。這個值是十進位制格式的有效 WGS 84 經度。
  • bike_stations.latitude — 站點的緯度。這個值是十進位制格式的有效 WGS 84 緯度。
  • num_bikes_available — 可供租用的自行車數量。

查詢可供出租超過 30 輛自行車的站點

在此教學課程章節中,您將執行一個標準 SQL 查詢,在紐約市中找到所有可供出租自行車超過 30 輛的 Cite Bike 站點。

查詢詳情

以下的標準 SQL 查詢用於搜尋超過 30 輛自行車的 Citi Bike 站點。

SELECT
  ST_GeogPoint(longitude, latitude)  AS WKT,
  num_bikes_available
FROM
  `bigquery-public-data.new_york.citibike_stations`
WHERE num_bikes_available > 30

查詢子句會執行下列動作:

  • SELECT ST_GeogPoint(longitude, latitude) AS WKT, num_bikes_available
    SELECT 子句會選取 num_bikes_available 資料欄,然後使用 ST_GeogPoint 函式,將 latitudelongitude 資料欄中的值轉換為 GEOGRAPHY 類型 (資料點)。
  • FROM `bigquery-public-data.new_york.citibike_stations`
    FROM 子句指定要查詢的資料表:citibike_stations
  • WHERE num_bikes_available > 30
    WHERE 子句篩選 num_bikes_available 資料欄中的值,只選出有 30 輛自行車以上的站點。

執行查詢

如何使用 GCP Console 中的 BigQuery 網頁版 UI 執行查詢:

  1. 前往 GCP Console。

    前往 GCP Console

  2. 在「Query editor」(查詢編輯器) 文字區域中,輸入下列標準 SQL 查詢。

    -- Finds Citi Bike stations with > 30 bikes
    SELECT
      ST_GeogPoint(longitude, latitude)  AS WKT,
      num_bikes_available
    FROM
      `bigquery-public-data.new_york.citibike_stations`
    WHERE num_bikes_available > 30
    
  3. 按一下 [Run] (執行)

    查詢需要一些時間才會完成。查詢執行完畢之後,您的結果會呈現於「查詢結果」 窗格中。

    自行車站點查詢結果

在 Geo Viz 中將您的查詢結果視覺化

下一步,您會透過 BigQuery Geo Viz 將查詢結果視覺化。BigQuery Geo Viz 是一個網頁工具,使用 Google Maps API 在 BigQuery 中顯示地理空間資料。

啟用 Geo Viz 並進行身分驗證

在您使用 Geo Viz 之前,您必須在 BigQuery 中對資料進行身分驗證並授予存取權。

如何設定 Geo Viz:

  1. 開啟 Geo Viz 網頁版工具。

    開啟 Geo Viz 網頁版工具。

  2. 在第一步「Select data」(選取資料) 中按一下 [Authorize] (授權)

    Geo Viz 授權按鈕

  3. 在「Choose an account」(選擇帳戶) 對話方塊中,按一下您的 Google 帳戶。

    選擇帳戶對話框

  4. 在存取對話方塊中,按一下 [Allow] (允許) 以取得您 BigQuery 資料的 Geo Viz 存取權。

    允許存取對話框

對 GIS 資料執行標準 SQL 查詢

在您進行身分驗證並授予權限後,下一步是在 Geo Viz 中執行查詢。

執行查詢:

  1. 在第一步「Select data」中,於「Project ID」欄位中輸入您的專案 ID。

  2. 在查詢的視窗中,輸入下列標準 SQL 查詢。

    -- Finds Citi Bike stations with > 30 bikes
    SELECT
      ST_GeogPoint(longitude, latitude)  AS WKT,
      num_bikes_available
    FROM
      `bigquery-public-data.new_york.citibike_stations`
    WHERE num_bikes_available > 30
    
  3. 按一下 [Run] (執行)。

  4. 當查詢完畢之後,按一下 [See results]。您也可以點選第二步的 [Define columns]

    查看結果

  5. 您會進入步驟二。在步驟二的 [Geometry column] 中,選擇 [WKT],這會在您的地圖上標註相對應的自行車站點位置。

    地圖上的結果

格式化您的視覺化資料

在樣式的部分,它提供您自定義的視覺化樣式列表。某些屬性僅適用於某些類型的資料。例如 circleRadius 僅會影響資料點。

系統支援的樣式屬性包含:

  • fillColor:多邊形或是點的填充顏色。例如,可以使用「linear」或「interval」函式以數字值來對應顏色漸層。
  • fillOpacity:多邊形或是點的填充透明度。值必須在零和一的範圍內,其中 0 = 透明,且 1 = 不透明。
  • strokeColor:多邊形或線條的筆觸或外框顏色。
  • strokeOpacity:多邊形或線條的筆觸或外框的透明度。值必須在零和一的範圍內,其中 0 = 透明,且 1 = 不透明。
  • strokeWeight:多邊形或線條的筆觸或外框寬度 (以像素為單位)。
  • circleRadius:資料點的圓半徑 (以像素為單位)。例如,「linear」函式能夠以數字值對應資料點的大小,以建立散佈圖的樣式。

每種樣式可能得到全局值 (應用於每個結果) 或是資料導向值 (根據每個結果資料列的資料採取不同的應用方式)。針對資料導向值,以下的項目皆會影響其結果:

  • 「function」:用於從欄位值計算樣式值的函式。
  • 「identity」:每個欄位的資料值都做為樣式值使用。
  • 「categorical」:將領域中列出的每個欄位的資料值以一對一的方式對應至範圍中的相應樣式。
  • 「interval」:每個欄位的資料值會無條件捨去至領域中最接近的值,並依據範圍中對應的樣式進行樣式設定。
  • 「linear」:每個欄位的資料值會線性內插於領域的值之間,並混合採用範圍中對應的樣式。
  • 「field」:將資料中的指定欄位當成樣式函式的輸入使用。
  • 「domain」:來自欄位的範例輸入值的已排序清單。範例輸入 (領域) 會根據指定的函式與範例輸出 (範圍) 配對,並用於推測所有輸入 (包括未列於領域中的輸入) 的樣式值。領域中的值必須要有相同的類型 (文字或數字等),做為您要進行視覺化之欄位的值。
  • 「range」:樣式規則的範例輸出值清單。範圍中的值必須要有相同的類型 (顏色或數字),做為您要控制的樣式屬性。例如,fillColor 屬性的範圍應該僅包含顏色。

如要將您的地圖進行格式化,請進行以下操作:

  1. 按一下第二步中的 [Add styles],或按一下第三步的 [Style]

  2. 更換資料點的顏色。按一下 [fillColor]

  3. 在「Value」(值) 欄位中,輸入 #0000FF (藍色的 HTML 顏色代碼)。

    填滿顏色

  4. 查看您的地圖。若將滑鼠停留在其中一個資料點上,即會顯示該值。

    地圖資料點的詳細資訊

  5. 按一下 [fillOpacity]

  6. 在「Value」(值) 欄位中,輸入 .5

    填充不透明度

  7. 查看您的地圖。資料點的填充顏色目前為半透明。

    以半透明資料點標記於地圖上

  8. 依據可用自行車的數量改變資料點的大小。按一下 [circleRadius]

  9. 在「circleRadius」面板中:

    1. 按一下「Data driven」
    2. 將「Function」選擇為 [linear]
    3. 針對「Field」(欄位),選擇 num_bikes_available
    4. 針對「Domain」(領域),分別在第一個和第二個方塊中輸入 3060
    5. 針對「Range」(範圍),分別在第一個和第二個方塊中輸入 520

      圓半徑

  10. 查看您的地圖。現在每個圓的半徑會根據該位置可用的自行車數量進行調整。

    最終地圖

  11. 關閉 Geo Viz。

清除所用資源

如何避免系統向您的 Google Cloud Platform 帳戶收取您在本教學課程中使用資源的相關費用:

  • 您可以刪除您所建立的專案。
  • 或者您可以保留該專案以備將來使用。

若要刪除專案,請進行以下操作:

  1. 前往 GCP 主控台的「Projects」(專案) 頁面。

    前往「Projects」(專案) 頁面

  2. 在專案清單中,找到您要刪除的專案並按一下「刪除」圖示 delete
  3. 在對話方塊中輸入專案 ID,按一下 [Shut down] (關閉) 即可刪除專案。

相關資源

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
需要協助嗎?請前往我們的支援網頁