使用闪亮的传单

问题描述 投票:0回答:1

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

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)
r shiny r-leaflet
1个回答
3
投票

几点

  • renderLeaflet()
    调用中的最后一条语句是返回的内容。所以,如果你有一个
    print
    语句,这就是返回的内容,而不是传单对象
  • 我认为您还需要
    shinyUI()
    shinyServer()
    围绕您的 UI 和服务器功能
    - 从闪亮的 v0.10 开始已弃用
  • height
    是一个很难正确理解的论点 - 请参阅此线程

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);
© www.soinside.com 2019 - 2024. All rights reserved.