YouBike臺北市公共自行車站場地圖

利用DataTaipei套件搜尋youBike站場相關資料集, 取得站場座標與各站空位數量等,以R 語言轉為Google Map呈現。

suppressPackageStartupMessages({
  library(DataTaipei)
  library(dplyr)
  library(ggmap)
})
## Warning: package 'ggmap' was built under R version 3.1.3
## Warning: package 'ggplot2' was built under R version 3.1.3

搜尋資料集

透過dataSetMetadataSearch,我們可取得關於youBike的搜尋結果:

rs <- dataSetMetadataSearch(q = "youbike")

下載資料項目內容

由dataset中的metadata解析出resource ID 透過 resourceAquire,我們可取得資料項目內容

rid <- getResources(rs, 1)
suppressWarnings(df <- resourceAquire(rid$resourceId[1]))

在Goole Map上呈現各站場位置

在youBike相關資料中取得站場經緯度與空位數量 以R 語言 ggmap套件轉為Google Map呈現

# plot
strsplit(rs$fieldDescription, "\r\n")
## [[1]]
##  [1] "iid:ItemId、"               "sv:場站狀態、"             
##  [3] "sd:啟用時間、"              "vtyp:版本別、"             
##  [5] "sno:場站代號、"             "sna:場站名稱、"            
##  [7] "sip:場站 IP、"              "tot:場站的總停車格、"      
##  [9] "sbi:場站的目前車輛數、"     "sarea:場站區域、"          
## [11] "mday:資料更新時間、"        "lat:經度、"                
## [13] "lng:緯度、"                 "ar:地址、"                 
## [15] "sareaen:場站區域英文名稱、" "snaen:場站英文名稱、"      
## [17] "aren:英文地址、"            "nbcnt:擋板數量、"          
## [19] "bemp:空位數量、"            "act:禁用狀態"
df2 <- dplyr::mutate(df, lat = as.numeric(lat), lng = as.numeric(lng))
bdy_location <- dplyr::select(df2, lng, lat) %>% apply(MARGIN = 2, range)
qmap(location = c(bdy_location[c(1, 3, 2, 4)]), zoom = 14,legend = "topleft") +
  geom_point(aes(x = lng, y = lat, size = bemp), colour = "blue",data = df2)
## Warning: bounding box given to google - spatial extent only approximate.
## converting bounding box to center/zoom specification. (experimental)
## Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=25.054195,121.544502&zoom=14&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false
## Warning: Removed 247 rows containing missing values (geom_point).