開始使用地理空間分析

BigQuery 的地理空間分析功能可讓您順暢分析及視覺化呈現位置資料。將原始經緯度座標轉換為地理點,即可直接從資料倉儲執行空間查詢及繪製互動式地圖。

目標

  • 使用地理空間分析函式,將經緯度資料欄轉換為地理位置點。
  • 執行查詢,找出所有可租借單車超過 30 輛的 Citi Bike 站點。
  • 在 BigQuery 中以圖表呈現結果。
  • 在 BigQuery Geo Viz 中以視覺化的方式呈現結果。

費用

本教學課程使用 Cloud de Confiance by S3NS的計費元件,包括 BigQuery。

您需要支付以下費用:

事前準備

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

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

    啟用 BigQuery API (如果尚未啟用)。

    啟用 API 所需的角色

    您必須具備 serviceusage.services.enable 權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「Service Usage 管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    啟用 API

匯出樣本資料

本教學課程使用的資料集可透過Cloud de Confiance by S3NS 公開資料集計畫取得。公開資料集是儲存在 BigQuery 中且可供一般大眾使用的任何資料集。公共資料集是 BigQuery 託管的資料集,讓您能夠存取與整合到您的應用程式中。Google 會支付這些資料集的儲存費用,並透過專案提供資料的公開存取權。您只需支付對資料執行查詢的費用 (每月前 1 TB 免費,詳情請參閱查詢定價)。

紐約市 Citi Bike 行程資料集

NYC Citi Bike Trips

Citi Bike 是美國最大的自行車共享計劃,在曼哈頓、布魯克林、皇后區和澤西市設有 10,000 輛自行車及 600 個站點。這個資料集包含 Citi Bike 自 2013 年 9 月推出以來所記錄的所有行程,並且每日更新。Citi Bike 會處理資料,移除工作人員為維護及檢查系統而進行的行程,以及任何持續時間少於 60 秒的行程 (視為錯誤啟動)。

您可以在 BigQuery 主控台中查看 citibike_stations 資料表的詳細資料,開始探索這份資料:

前往 citibik_stations 結構定義

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

  • bike_stations.longitude:車站的經度。這個值是十進位制格式的有效 WGS 84 經度。
  • bike_stations.latitude:車站的緯度。這個值是十進位制格式的有效 WGS 84 緯度。
  • num_bikes_available:可租借的單車數量。

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

在本教學課程的這個部分,您將執行 GoogleSQL 查詢,找出紐約市所有可租借超過 30 輛自行車的 Citi Bike 站點。

查詢詳細資料

下列 GoogleSQL 查詢用於找出單車數量超過 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 函式,將 latitude 和 longitude 資料欄中的值轉換為 GEOGRAPHY 類型 (資料點)。
  • FROM `bigquery-public-data.new_york.citibike_stations`
    FROM 子句指定要查詢的資料表:citibike_stations。
  • WHERE num_bikes_available > 30
    WHERE 子句篩選 num_bikes_available 資料欄中的值,只選出有 30 輛自行車以上的站點。

執行查詢

如要使用 Cloud de Confiance 控制台執行查詢,請按照下列步驟操作:

  1. 前往 Cloud de Confiance 控制台的「BigQuery」頁面。

    前往「BigQuery」頁面

  2. 在「查詢編輯器」文字區域中,輸入下列 GoogleSQL 查詢。

    -- 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. 按一下「執行」。

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

    單車站查詢結果。

在 BigQuery 中以圖表呈現結果

如要在互動式地圖中以視覺化方式呈現結果,請按照下列步驟操作:

  1. 在「查詢結果」窗格中,點選「圖表」。

    單車站位置圖表。

    地圖上的點代表各個單車站的位置。

  2. 您可以對地圖套用統一或資料導向樣式。如要以圖表呈現各站點可租借的單車數量,請在「Data column」(資料欄) 中選取「num_bikes_available」。

  3. 如要提高可見度,請嘗試調整「Opacity」(不透明度)、「Color」(顏色) 或「Point size」(點大小)。如果資料包含離群值,您可以調整「Min」(最小值) 和「Max」(最大值)。值超出這個範圍的地理區域仍會顯示在地圖上,但不會套用任何顏色。

  4. 如要查看地理位置的屬性,請按一下該地理位置。

  5. 如要以衛星模式查看地圖,請按一下「衛星」。

單車站位置的風格化視覺效果。

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

您也可以使用 BigQuery Geo Viz 以圖表呈現結果:這項網頁工具可使用 Google Maps API,以圖表呈現 BigQuery 中的地理空間資料。

啟用 Geo Viz 並進行身分驗證

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

如何設定 Geo Viz:

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

    開啟 Geo Viz 網頁版工具

    您可能需要啟用 Cookie,才能授權及使用這項工具。

  2. 在步驟一「查詢」下方,點選「授權」。

    Geo Viz 授權按鈕。

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

    選擇帳戶對話方塊。

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

    「允許存取」對話方塊。

對地理空間資料執行 GoogleSQL 查詢

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

執行查詢:

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

  2. 在查詢視窗中,輸入下列 GoogleSQL 查詢。

    -- 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. 按一下「執行」。

  4. 查詢完成後,按一下「顯示結果」。您也可以按一下第二步的 [Define columns] (定義資料欄)。

    查看結果。

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

    對應結果。

設定您的視覺化格式

「Style」(樣式) 區段會提供視覺化樣式清單以供您自訂。某些屬性僅適用於某些類型的資料。例如,circleRadius 僅會影響資料點。

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

  • fillColor。多邊形或點的填滿顏色。例如,可以使用「linear」或「interval」函式以數值來對應顏色漸層。
  • fillOpacity。多邊形或點的填色不透明度。值必須介於 0 到 1 之間,其中 0 = 透明,1 = 不透明。
  • strokeColor。多邊形或線條的筆劃或外框顏色。
  • strokeOpacity。多邊形或線條的筆劃或外框不透明度。值必須介於 0 到 1 之間,其中 0 = 透明,1 = 不透明。
  • strokeWeight。多邊形或線條的筆劃或外框寬度,以像素為單位。
  • circleRadius。代表點的圓形半徑,以像素為單位。例如,「linear」函式能夠以數值對應資料點的大小,以建立散佈圖的樣式。

每種樣式都可以指定全域值 (套用至每個結果) 或資料導向值 (根據每個結果列中的資料,以不同方式套用)。針對資料導向值,以下的項目皆會影響其結果:

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

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

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

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

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

  4. 按一下「套用樣式」。

    填滿顏色。

  5. 查看您的地圖。按一下其中一個點,就會顯示該點的值。

    地圖點詳細資料。

  6. 按一下 [fillOpacity]。

  7. 在「Value」(值) 欄位中輸入 0.5,然後按一下「Apply Style」(套用樣式)。

    填色不透明度。

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

    顯示半透明點的地圖。

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

  10. 在「circleRadius」面板中:

    1. 按一下「Data driven」。
    2. 在「Function」(函式) 部分選擇 [linear]。
    3. 在「Field」(欄位) 部分,選擇 num_bikes_available。
    4. 在「Domain」(領域) 部分,分別在第一個和第二個方塊中輸入 30 和 60。
    5. 在「Range」(範圍) 部分,分別在第一個和第二個方塊中輸入 5 和 20。

      圓形半徑。

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

    最終地圖。

  12. 關閉 Geo Viz。

清除所用資源

為避免因為本教學課程所用資源,導致系統向 Google Cloud 帳戶收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

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

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

  1. 前往 Cloud de Confiance 控制台的「Manage resources」(管理資源) 頁面。

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

  2. 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
  3. 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。

後續步驟