如何在Rshiny中输出tmap_leaflet

时间:2017-03-18 03:22:07

标签: r shiny tmap

所以我一般都是Rshiny和R的新手。我正在测试tmap包,当我在控制台中键入它时

> working_map <- readOGR(dsn=".",layer=file_name, GDAL1_integer64_policy=TRUE)
> japan <- tm_shape(working_map) + tm_fill(col="NumIB", title="# Inbound to Cities", style="jenks")
> tmap_leaflet(japan)

我得到了一个交互式的传单小部件,它允许我像传单一样查看和放大。

但是我无法将其整合到我的Rshiny应用程序中。

# ui.R


shinyUI(fluidPage(  

  mainPanel(  
    leafletOutput("working_map", height=900)
  )

))

#server.R
output$working_map <- renderLeaflet({
  working_map <- readOGR(dsn=".",layer=filename, GDAL1_integer64_policy=TRUE) 
  japan <- tm_shape(working_map) + tm_fill(col="NumIB", title="# Inbound to Cities", style="jenks")
  tmap_leaflet(japan)
})

我尝试了各种组合。如plotOutput,或将tmap_leaflet放在ui.R中。似乎没有任何工作。如果我没错,tmap_leaflet会创建一个Leaflet Widget。我应该在ui方面创造这个吗?或者我应该使用global.R?

1 个答案:

答案 0 :(得分:2)

我设法解决了。

#ui.R

shinyUI(fluidPage(
  titlePanel("Japan Map"),

  mainPanel(    
    leafletOutput("working_map", height=900)
  )

))

#server.R
shinyServer(function(input, output) {


  output$working_map <- renderLeaflet({
    working_map <- readOGR(dsn=".",layer="japan_ver81", GDAL1_integer64_policy=TRUE)
    working_map <- tm_shape(working_map) + tm_fill(col="NumIB", title="# Inbound to Cities", style="jenks")
    tmap_leaflet(working_map)

  })


  })

变量是一个非常愚蠢的错误。我使用的包是库(tmap)和库(rgdal)。