本教學課程將介紹地理空間分析。地理空間分析可讓您在 BigQuery 中分析地理空間資料並將其視覺化。
目標
在本教學課程中,您將執行下列作業:
- 使用地理空間分析函式將經度與緯度的資料欄轉換為地理點
- 執行查詢作業,搜尋有超過 30 輛可供出租自行車的 Citi Bike 站點。
- 在 BigQuery Geo Viz 中以視覺化的方式呈現結果
費用
本教學課程使用 Google Cloud的計費元件,包括 BigQuery。
您需要支付以下費用:
- 在 BigQuery 的公開資料集裡查詢資料。
- 每個月前 1TB 免費
- 如果您使用以運算資源為基礎的計價模式,查詢費用會包含在以運算資源為基礎的價格中。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- 新專案會自動啟用 BigQuery。如要在現有專案中啟用 BigQuery,請前往
Enable the BigQuery API.
匯出樣本資料
本教學課程使用 Google Cloud Public Dataset Program 提供的資料集。公開資料集是儲存在 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 查詢,找出紐約市所有 Citi Bike 站點,其中有超過 30 輛可供出租的自行車。
查詢詳細資料
下列 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 輛自行車以上的站點。
執行查詢
如何使用 Google Cloud 控制台執行查詢:
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Query editor」(查詢編輯器) 文字區域中輸入下列 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」(查詢結果) 窗格中。
在 Geo Viz 中將查詢結果視覺化
接下來,您會透過 BigQuery 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
按一下「執行」。
查詢完成後,按一下「Show results」。您也可以按一下第二步的 [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」函式能夠以數值對應資料點的大小,以建立散佈圖的樣式。
每種樣式可以得到全域值 (套用至每個結果) 或資料導向值 (根據每個結果資料列的資料採取不同的應用方式)。針對資料導向值,以下的項目皆會影響其結果:
- function。用於從欄位值計算樣式值的函式。
- identity。每個欄位的資料值都做為樣式值使用。
- categorical:將領域中列出的每個欄位的資料值以一對一的方式對應至範圍中的相應樣式。
- 間隔。每個欄位的資料值會無條件捨去至領域中最接近的值,並依據範圍中對應的樣式進行樣式設定。
- 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 帳戶收取本教學課程中所用資源的相關費用,請刪除含有該項資源的專案,或者保留專案但刪除個別資源。
- 您可以刪除建立的專案。
- 或者您可以保留該專案以備將來使用。
如要刪除專案,請進行以下操作:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
後續步驟
- 如要進一步瞭解地理空間分析的視覺化選項,請參閱「視覺化地理空間資料」。
- 如要進一步瞭解如何使用地理空間分析資料,請參閱「使用地理空間資料」。
- 如需使用地理空間分析的教學課程,請參閱使用地理空間分析繪製颶風路徑。
- 如要查看地理空間分析中的 GoogleSQL 函式說明文件,請參閱「GoogleSQL 中的地理函式」。