使用有光泽的传单

时间:2017-01-16 04:50:10

标签: r shiny leaflet

我正在尝试使用传单绘制闪亮的地图,但我一直收到一个我不明白的错误。以下是最小可重复的示例。在此先感谢您的帮助

library(shiny)
library(leaflet)
ui = fluidPage("test", id="nav",
               leafletOutput("map", width="100%", height="100%")
               )


server <- function(input, output,session) {
  output$map <- renderLeaflet({
    print("Rendering leaflet map")
    leaflet() %>% addProviderTiles("Esri.OceanBasemap") %>% 
    fitBounds(160, -30, 185, -50)
    print("Finishing rendering leaflet map")
  })
}

shinyApp(ui, server);

我把它打印到控制台:

[1] "Rendering leaflet map"
[1] "Finishing rendering leaflet map"
Warning: Error in $: $ operator is invalid for atomic vectors
Stack trace (innermost first):
    80: origRenderFunc
    79: output$map
     4: <Anonymous>
     3: do.call
     2: print.shiny.appobj
     1: <Promise>

当在闪亮的框架之外时,传单函数似乎有效,因此我有点困惑。

    leaflet() %>% addProviderTiles("Esri.OceanBasemap") %>% 
    fitBounds(160, -30, 185, -50)

1 个答案:

答案 0 :(得分:2)

几点

  • renderLeaflet()调用中的最后一个语句是返回的内容。因此,如果您有一个print语句,那就是返回的语句,而不是传单对象
  • 我认为您还需要shinyUI()shinyServer()包围您的UI和服务器功能 - 已弃用,闪亮的v0.10
  • height是一个棘手的争论 - 请参阅此thread
library(shiny)
library(leaflet)

ui <- fluidPage(
        leafletOutput(outputId = "map", width="100%")
        )



server <- function(session, input, output) {

    output$map <- renderLeaflet({
        leaflet() %>% addProviderTiles("Esri.OceanBasemap") %>% 
            fitBounds(160, -30, 185, -50)
    })  
}

shinyApp(ui, server);