Chapter 6 其他 TDX 資料
除軌道運輸、公車、自行車、航空與航運各運具資料外,TDX 平臺亦提供諸多實用的資料介接 API,而本套件中目前另外包含觀光點位、停車場資料、道路路網線型、高快速公路線型、地理編碼服務等,未來將依實務需求,持續開發具實用性的函式。
6.1 觀光點位
◎ 資料概述
觀光點位包含景點、餐廳、旅館,回傳結果包含各興趣點代碼與名稱、地址、經緯度、營業時間等詳細資訊。須注意的是 TDX 平臺上的觀光點位資料更新周期較長,可能有些點位已停業或撤銷,卻仍出現在資料中,且部分縣市政府並未完整調查與整理,故請斟酌使用之。
◎ 函式參數
參數 | 必選填 | 功能 | 參數設定值 |
---|---|---|---|
access_token=
|
必填參數 | [Access Token] | 1.6.3 Access Token 取得方式 |
county=
|
縣市代碼 |
請參照TDX_County 表格,若欲回傳全臺資料,請填入ALL
|
|
poi=
|
興趣點類型 |
興趣點類型,含括Scenicspot 、Restaurant 、Hotel
|
|
dtype=
|
選填參數 | 回傳的資料型態 |
text :純文字形式,其資料型態屬data.frame [預設值]
|
sf :地理資料形式,其資料型態屬sf
|
|||
out=
|
匯出資料之路徑 |
FALSE :不匯出資料至本機 [預設值]
|
|
若回傳的資料型態為「text 」:路徑必須含有.csv 或.txt
|
|||
若回傳的資料型態為「sf 」:路徑必須含有.shp
|
◎ 程式碼撰寫範例
回傳花蓮縣觀光景點資料(地理資料)
# 介接花蓮縣觀光景點
Hualien_scenicspot=Tourism(access_token, county="HualienCounty", poi="ScenicSpot", dtype="sf")
# 使用TWspdata套件中的臺灣鄉鎮資料,並擷取花蓮縣資料
hualien=filter(TWspdata::taiwan_town, COUNTYNAME=="花蓮縣")
# 繪製地圖
ggplot()+
geom_sf(data=hualien)+
geom_sf_text_repel(data=hualien, aes(label=TOWNNAME))+
geom_sf(data=Hualien_scenicspot)+
annotation_scale(location="br")+
annotation_north_arrow(location="tl")
NOTE
以上程式碼中係利用 annotation_scale()
與 annotation_north_arrow()
函式分別加上比例尺與指北針,此二元素為繪製地圖的基本元件。R 語言中「比例尺與指北針」之加註方法,請參考 Spatial Analysis with R (Chia Jung, Yeh) 3.7.2 小節 North Arrow and Scale
以上程式碼中另外使用 TWspdata
套件中 taiwan_town
(臺灣鄉鎮市區)的資料,若欲使用之,請先行自 GitHub 下載此套件:
6.2 停車場資料
◎ 資料概述
停車場分為兩種,一為戶內外之停車場,另一則為路邊停車。戶內外停車場資料中詳細記載各停車場的經緯度位置、營運資訊,諸如費率、是否為公有、是否可預約等,各欄位詳細資訊彙整如表6.2。路邊停車格則僅顯示其代號與位置,此資料目前僅少部分縣市提供,而幾何資料型式可為點座標或停車格的面資料。
欄位名稱 | 意義 |
---|---|
Description | 停車場各運具停車位總數 [文字說明] |
FareDescription | 計費方式 [文字說明] |
IsPublic | 是否為公有停車場,是填1 |
OperationType | 營運型態(公辦民營:1;公營:2;民營:3) |
LiveOccuppancyAvailable | 是否提供停車位即時資訊,是填1 |
EVRechargingAvailable | 是否有電動車充電樁,是填1 |
MonthlyTicketAvailable | 是否提供月票,是填1 |
SeasonTicketAvailable | 是否提供季票,是填1 |
ReservationAvailable | 可否預約停車,是填1 |
WheelchairAccessible | 是否具無障礙設施,是填1 |
OvernightPermitted | 是否可過夜停車,是填1 |
◎ 函式參數
參數 | 必選填 | 功能 | 參數設定值 |
---|---|---|---|
access_token=
|
必填參數 | [Access Token] | 1.6.3 Access Token 取得方式 |
county=
|
縣市代碼 |
請參照TDX_County 表格,若欲回傳全臺資料,請填入ALL
|
|
street=
|
戶內外停車場/路邊停車 |
戶內外停車場:street=off
|
|
路邊停車格:street=on
|
|||
dtype=
|
選填參數 | 回傳的資料型態 |
text :純文字形式,其資料型態屬data.frame [預設值]
|
sf :地理資料形式,其資料型態屬sf
|
|||
out=
|
匯出資料之路徑 |
FALSE :不匯出資料至本機 [預設值]
|
|
若回傳的資料型態為「text 」:路徑必須含有.csv 或.txt
|
|||
若回傳的資料型態為「sf 」:路徑必須含有.shp
|
◎ 程式碼撰寫範例
1. 回傳臺中市戶內外停車場資料(地理資料)
# 介接臺中市戶內外停車場資料
Taichung_carpark=Car_Park(access_token, county="Taichung", street="off", dtype="sf")
## Data provides 'POINT' geometry.
2. 回傳花蓮縣路邊停車格資料(地理資料)
# 介接花蓮縣路邊停車格資料
Hualien_carpark=Car_Park(access_token, county="HualienCounty", street="on", dtype="sf")
## Data provides 'POINT' geometry.
6.3 道路路網線型
◎ 資料概述
TDX 平臺中提供道路路網線型資料,包含國道、省道快速公路、省道一般公路等三種類型之公路,請注意目前平臺中並未提供縣道以下等級(縣道、市道、鄉道、市區道路)之道路線型。本函式中需輸入縣市名稱與道路等級,回傳結果包含道路等級、道路代碼、道路名稱與空間資料等。另外本函式亦可直接擷取全臺灣、所有道路等級之資料,僅需在相對應的參數中填入「ALL
」即可,詳見以下函式參數。
◎ 函式參數
參數 | 必選填 | 功能 | 參數設定值 |
---|---|---|---|
accesss_token=
|
必填參數 | [Access Token] | 1.6.3 Access Token 取得方式 |
county=
|
縣市代碼 |
請參照TDX_County 表格,若欲回傳全臺資料,請填入ALL
|
|
roadclass=
|
道路等級代碼 |
0 :國道
|
|
1 :省道快速公路
|
|||
3 :省道一般公路
|
|||
ALL :所有道路等級
|
|||
dtype=
|
選填參數 | 回傳的資料型態 |
text :純文字形式,其資料型態屬data.frame [預設值]
|
sf :地理資料形式,其資料型態屬sf
|
|||
out=
|
匯出資料之路徑 |
FALSE :不匯出資料至本機 [預設值]
|
|
若回傳的資料型態為「text 」:路徑必須含有.csv 或.txt
|
|||
若回傳的資料型態為「sf 」:路徑必須含有.shp
|
◎ 程式碼撰寫範例
1. 回傳宜蘭縣省道一般公路資料(地理資料)
2. 回傳臺中市所有公路資料(地理資料)
# 介接臺中市所有公路
Taichung_road=Road_Network(access_token, county="Taichung", roadclass="ALL", dtype="sf")
# 擷取臺中市行政區資料(且刪除和平區)
taichung_city=filter(TWspdata::taiwan_town, COUNTYNAME=="臺中市", TOWNNAME!="和平區")
# 轉換座標系統
taichung_city=st_transform(taichung_city, crs=4326)
# 取臺中道路與臺中市行政區(不包括和平區)之交集
Taichung_road=st_intersection(Taichung_road, taichung_city$geometry)
# 繪製地圖
ggplot()+
geom_sf(data=taichung_city, color="#F0F0F0", fill="#D0D0D0")+
geom_sf(data=Taichung_road, aes(color=RoadClassName))
NOTE
以上程式碼中係利用 filter()
函式擷取臺中市鄉鎮市區資料,並刪除「和平區」此一行政區。filter()
為 dplyr
套件中相當常用的函式。R 語言中「篩選地理資料」之方法,請參考 資料科學與R語言 (曾意儒 Yi-Ju Tseng) 7.3.2 小節 filter()
在地理資料處理中,很常需要將兩地理資料取交集,可利用 sf
套件中的 st_intersection()
函式完成之。R語言中「地理資料交集」之方法,請參見Spatial Analysis with R (Chia Jung, Yeh) 5.9 章節 Clipping
另外,若欲執行交集,請確保交集的兩份地理資料必須擁有相同的座標參考系統(CRS),若座標參考系統不同,則請先行轉換至統一的格式。座標參考系統之概念詳見Spatial Analysis with R (Chia Jung, Yeh) 2.4 章節 Coordinate Reference System (CRS),轉換座標參考系統可利用 sf
套件中的 st_transform()
函式完成之,請參考Spatial Analysis with R (Chia Jung, Yeh) 4.5 章節 Reproject Geographic Data。
6.4 高快速公路線型
◎ 資料概述
TDX 平臺中雖有提供高快速公路的線型資料,然而資料較不細緻,故本套件另外自交通部高速公路局交通資料庫介接線型資料,其中包含四種類型的資料:「路段(section
)」表示高快速公路上各交流道間的線段;「節線(link
)」表示每一路段中更為細緻的幾何線型;「etag 門架(gantry
)」表示高速公路的 etag 門架,目前僅國道一、三、五號具門架,故其他橫向高速公路與快速道路並無此一型態資料;「etag 門架路段(gantryod
)」表示兩相鄰 etag 門架間的路段。另請注意,由於此函式並非介接自 TDX,故無需輸入 access_token
。
◎ 函式參數
參數 | 必選填 | 功能 | 參數設定值 |
---|---|---|---|
geotype=
|
必填參數 | 資料類型 |
section :交流道間路段
|
link :更為細緻路段
|
|||
gantry :etag 門架
|
|||
gantryod :etag 門架間路段
|
|||
dtype=
|
選填參數 | 回傳的資料型態 |
text :純文字形式,其資料型態屬data.frame [預設值]
|
sf :地理資料形式,其資料型態屬sf
|
|||
out=
|
匯出資料之路徑 |
FALSE :不匯出資料至本機 [預設值]
|
|
若回傳的資料型態為「text 」:路徑必須含有.csv 或.txt
|
|||
若回傳的資料型態為「sf 」:路徑必須含有.shp
|
◎ 程式碼撰寫範例 回傳高速公路各交流道間路段(地理資料)
6.5 地理編碼服務
地理編碼(Geocode)是指將地址或地標名稱轉換為經緯度的過程,最常見的軟體即是 Google地圖,輸入地址後,在打點座標處點選右鍵,即可複製該位置的經緯度。地理編碼看似簡單的查詢操作,然而若是要進行大量的地理編碼就不是容易的事情,大部分的軟體都需要收費或是有回傳結果的限制,故使用上須格外注意批次處理的數據量。關於地理編碼的詳細概念與各種服務平臺之簡要操作,詳見此。
目前 TDX 平臺提供免費的地理編碼服務,且無批次數據量之限制,對比其他需要收費或有批次限制的平臺,TDX 非常佛心!!務必珍惜使用此資源。
本函式僅需輸入地址即可自動回傳經緯度資料,必須特別注意的是,回傳欄位包括:AddressOriginal(原始輸入的地址資料)、AddressNew(TDX 平臺比對後的地理資料,通常地址會更加完整)、Geometry(經緯度資料)。
◎ 函式參數
參數 | 必選填 | 功能 | 參數設定值 |
---|---|---|---|
access_token=
|
必填參數 | [Access Token] | 1.6.3 Access Token 取得方式 |
address=
|
’地址資料 |
’須為向量格式 若「地址」位於「資料」中的其一欄位,請輸入 資料$地址
|
|
dtype=
|
選填參數 | 回傳的資料型態 |
text :純文字形式,其資料型態屬data.frame [預設值]
|
sf :地理資料形式,其資料型態屬sf
|
|||
out=
|
匯出資料之路徑 |
FALSE :不匯出資料至本機 [預設值]
|
|
若回傳的資料型態為「text 」:路徑必須含有.csv 或.txt
|
|||
若回傳的資料型態為「sf 」:路徑必須含有.shp
|
◎ 程式碼撰寫範例
地理編碼範例
# 將地址資料儲存於向量中
campus=c("臺北市中正區忠孝西路一段118號", "新竹市東區大學路1001號", "新竹縣竹北市六家五路一段1號")
# 將地址向量address置入Geocoding()函式中
campus_geocode=Geocoding(access_token, campus)
## Geocoding Summary
## Total: 3
## Success: 3
## Duplicated: 0
## Fail: 0
## AddressOriginal AddressNew
## 1 臺北市中正區忠孝西路一段118號 台北市中正區光復里忠孝西路一段118號
## 2 新竹市東區大學路1001號 新竹市東區光明里大學路1001號
## 3 新竹縣竹北市六家五路一段1號 新竹縣竹北市東平里六家五路一段1號
## geometry
## 1 POINT (121.5119072733048 25.04729699068649)
## 2 POINT (120.99949254081611 24.789143078010369)
## 3 POINT (121.0225852454279 24.811634475774639)