BigQuery 的地理空間分析功能可讓您順暢分析及視覺化呈現位置資料。將原始經緯度座標轉換為地理點,即可直接從資料倉儲執行空間查詢及繪製互動式地圖。
目標
- 使用地理空間分析函式,將經緯度資料欄轉換為地理位置點。
- 執行查詢,找出所有可租借單車超過 30 輛的 Citi Bike 站點。
- 在 BigQuery 中以圖表呈現結果。
- 在 BigQuery Geo Viz 中以視覺化的方式呈現結果。
費用
本教學課程使用 Cloud de Confiance by S3NS的計費元件,包括 BigQuery。
您需要支付以下費用:
- 在 BigQuery 的公開資料集裡查詢資料。
- 每個月前 1TB 免費
- 如果您採用以運算資源為基礎的計價模式,查詢費用會包含在以運算資源為基礎的價格中。
事前準備
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
- 新專案會自動啟用 BigQuery。如要在現有專案中啟用 BigQuery,請前往
啟用 BigQuery API (如果尚未啟用)。
啟用 API 所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「Service Usage 管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。
匯出樣本資料
本教學課程使用的資料集可透過Cloud de Confiance by S3NS 公開資料集計畫取得。公開資料集是儲存在 BigQuery 中且可供一般大眾使用的任何資料集。公共資料集是 BigQuery 託管的資料集,讓您能夠存取與整合到您的應用程式中。Google 會支付這些資料集的儲存費用,並透過專案提供資料的公開存取權。您只需支付對資料執行查詢的費用 (每月前 1 TB 免費,詳情請參閱查詢定價)。
紐約市 Citi Bike 行程資料集
Citi Bike 是美國最大的自行車共享計劃,在曼哈頓、布魯克林、皇后區和澤西市設有 10,000 輛自行車及 600 個站點。這個資料集包含 Citi Bike 自 2013 年 9 月推出以來所記錄的所有行程,並且每日更新。Citi Bike 會處理資料,移除工作人員為維護及檢查系統而進行的行程,以及任何持續時間少於 60 秒的行程 (視為錯誤啟動)。
您可以在 BigQuery 主控台中查看 citibike_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_availableSELECT子句會選取num_bikes_available資料欄,並使用ST_GeogPoint函式,將latitude和longitude資料欄中的值轉換為GEOGRAPHY類型 (資料點)。
FROM `bigquery-public-data.new_york.citibike_stations`FROM子句指定要查詢的資料表:citibike_stations。
WHERE num_bikes_available > 30WHERE子句篩選num_bikes_available資料欄中的值,只選出有 30 輛自行車以上的站點。
執行查詢
如要使用 Cloud de Confiance 控制台執行查詢,請按照下列步驟操作:
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在「查詢編輯器」文字區域中,輸入下列 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
按一下「執行」。
查詢需要一些時間才會完成。查詢執行完畢之後,您的結果會呈現於「Query results」(查詢結果) 窗格中。
在 BigQuery 中以圖表呈現結果
如要在互動式地圖中以視覺化方式呈現結果,請按照下列步驟操作:
在「查詢結果」窗格中,點選「圖表」。
地圖上的點代表各個單車站的位置。
您可以對地圖套用統一或資料導向樣式。如要以圖表呈現各站點可租借的單車數量,請在「Data column」(資料欄) 中選取「
num_bikes_available」。如要提高可見度,請嘗試調整「Opacity」(不透明度)、「Color」(顏色) 或「Point size」(點大小)。如果資料包含離群值,您可以調整「Min」(最小值) 和「Max」(最大值)。值超出這個範圍的地理區域仍會顯示在地圖上,但不會套用任何顏色。
如要查看地理位置的屬性,請按一下該地理位置。
如要以衛星模式查看地圖,請按一下「衛星」。
在 Geo Viz 中將查詢結果視覺化
您也可以使用 BigQuery Geo Viz 以圖表呈現結果:這項網頁工具可使用 Google Maps API,以圖表呈現 BigQuery 中的地理空間資料。
啟用 Geo Viz 並進行身分驗證
在您使用 Geo Viz 之前,您必須在 BigQuery 中對資料進行身分驗證並授予存取權。
如何設定 Geo Viz:
開啟 Geo Viz 網頁版工具。
您可能需要啟用 Cookie,才能授權及使用這項工具。
在步驟一「查詢」下方,點選「授權」。
在「Choose an account」(選擇帳戶) 對話方塊中,按一下您的 Google 帳戶。
在存取對話方塊中,按一下 [Allow] (允許) 以取得您 BigQuery 資料的 Geo Viz 存取權。
對地理空間資料執行 GoogleSQL 查詢
在您進行身分驗證並授予權限後,下一步是在 Geo Viz 中執行查詢。
執行查詢:
在第一步「Select data」(選取資料) 中,於「Project ID」(專案 ID) 欄位中輸入您的專案 ID。
在查詢視窗中,輸入下列 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
按一下「執行」。
查詢完成後,按一下「顯示結果」。您也可以按一下第二步的 [Define columns] (定義資料欄)。
您會進入步驟二。在步驟二的「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屬性的範圍應該僅包含顏色。
如要將您的地圖進行格式化,請進行以下操作:
按一下第二步中的 [Add styles],或按一下第三步的 [Style]。
更換資料點的顏色。按一下 [fillColor]。
在「Value」(值) 欄位中,輸入
#0000FF(藍色的 HTML 顏色代碼)。按一下「套用樣式」。
查看您的地圖。按一下其中一個點,就會顯示該點的值。

按一下 [fillOpacity]。
在「Value」(值) 欄位中輸入
0.5,然後按一下「Apply Style」(套用樣式)。
查看您的地圖。資料點的填充顏色目前為半透明。
依據可用自行車的數量改變資料點的大小。按一下 [circleRadius]。
在「circleRadius」面板中:
- 按一下「Data driven」。
- 在「Function」(函式) 部分選擇 [linear]。
- 在「Field」(欄位) 部分,選擇
num_bikes_available。 - 在「Domain」(領域) 部分,分別在第一個和第二個方塊中輸入
30和60。 在「Range」(範圍) 部分,分別在第一個和第二個方塊中輸入
5和20。
查看您的地圖。現在每個圓的半徑會根據該位置可用的自行車數量進行調整。
關閉 Geo Viz。
清除所用資源
為避免因為本教學課程所用資源,導致系統向 Google Cloud 帳戶收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。
- 您可以刪除建立的專案。
- 或者您可以保留該專案以備將來使用。
如要刪除專案,請進行以下操作:
- 前往 Cloud de Confiance 控制台的「Manage resources」(管理資源) 頁面。
- 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
- 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。
後續步驟
- 如要進一步瞭解地理空間分析的視覺化選項,請參閱「以圖表呈現地理空間資料」。
- 如要進一步瞭解如何使用地理空間分析資料,請參閱「使用地理空間資料」。
- 如需地理空間分析的使用教學課程,請參閱「使用地理空間分析繪製颶風路徑」。
- 如需地理空間分析中 GoogleSQL 函式的說明文件,請參閱「GoogleSQL 中的地理函式」。