2017年9月9日 星期六

R語言shiny測試

R語言shiny測試


簡易學習紀錄~


1. 安裝R跟Rstudio。
  R:https://www.r-project.org/
  Rstudio:https://www.rstudio.com/
2. 安裝shiny, leaflet套件
  install.packages("shiny")
  install.packages("leaflet")
3. 從開放資料抓出測速照相資料,轉csv檔案
  標題列須把中文改英文,經緯度拆成兩格,大約長這樣。



4. 開立資料夾,建立『server.R』、『ui.R』跟放入csv檔案
『server.R』:
library(shiny)
library(leaflet)
function(input, output) {
  output$map <- renderLeaflet({
    datqX <- read.csv("002.csv", header = T)
    leaflet(datqX) %>%
      addTiles()%>%
      addProviderTiles("OpenStreetMap.BlackAndWhite") %>%
      addCircleMarkers(lat = datqX$N07 , lng = datqX$N08
                       , color = "red",fillOpacity = 0.07
                       , popup = paste(
                         "地點", datqX$N02, "<br>"
                         , "類型1:", datqX$N03, "<br>"
                         , "類型2:", datqX$N04, "<br>"
                         , "方向:", datqX$N05, "<br>"
                         , "速限:", datqX$N06, "<br>"
                       ))%>%
      setView(lng=120.6,lat=24.1,zoom=10)
  })

  output$summary <- renderText({
      "資料來源:http://www.police.taichung.gov.tw/TCPBWeb/wSite/ct?xItem=87415&ctNode=4189&mp=team02"
  })
}
『ui.R』:
library(shiny)
library(leaflet)
fluidPage(
  titlePanel("測速照相位置"),
  mainPanel(
    h3("地圖"),
    leafletOutput("map"),
    h4("相關說明"),
    verbatimTextOutput("summary")
  )
)
5. 申請shinyapps.io帳號
  shinyapps.io:http://www.shinyapps.io/
6. 依據提示步驟執行:http://docs.rstudio.com/shinyapps.io/getting-started.html
7. 複製Token字串至Rstudio執行


8. 執行Run app時可以直接選擇Publish



9. 成功會自動在瀏覽器執行:https://catfly.shinyapps.io/TRTest/
10. 延伸問題:
  1. 資料有部份有問題需要校正:標到鹿港地區的明顯經緯度有問題。
  2. 最後網頁呈現部分可以再研究。


參考資料:
臺中市政府警察局闖紅燈及測速照相固定桿設置地點一覽表
R语言在线地图神器:Leaflet for R包(二)基础底图
R语言在线地图神器:Leaflet for R包(三) 符号标记

沒有留言:

張貼留言