利用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]))
在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).