【问题标题】:Leaflet and Shiny "could not find function leafletOutput()"Leaflet 和 Shiny “找不到函数 leafletOutput()”
【发布时间】:2019-07-28 15:21:32
【问题描述】:

我有一个leaflet 映射,我希望选择从 A 的值切换到 B 的值。我能找到的每个示例都说使用 shinyleaflet 以及所有这些示例包括以下内容:

ui <- fluidPage(
  selectInput(inputId = "Data", 
              label = "Data", 
              choices = c("A","B"),
  leafletProxy(outputId = "map") #or leafletOutput
))

但我不断收到错误提示

leafletProxy(或leafletOutput)不存在

。我该如何解决这个问题?我的传单是用 :

创建的
mypal <- colorNumeric(palette = "viridis", domain = d$A)

    leaflet() %>% 
      addProviderTiles("OpenStreetMap.Mapnik") %>%
      setView(lat = 39.8283, lng = -98.5795, zoom = 4) %>%
      addPolygons(data =

USA, stroke = TRUE, color='black', opacity=1, weight=.5, smoothFactor = 0.2, fillOpacity = 1,
                  fillColor = ~mypal(d$A),
                  popup = paste('<b>',d$state, "</b><br>A:", d$A) %>%
      addLegend(position = "bottomleft", pal = mypal, values = d$A,
                title = "A",
                opacity = 1)

【问题讨论】:

    标签: r shiny leaflet shinydashboard


    【解决方案1】:

    从您的示例看来,您的 shiny 没有 server 功能,所以它不起作用。

    请找到附件中的模拟闪亮,您可以开始构建:

    library(shiny)
    library(leaflet)
    
    ui <- fluidPage(
      selectInput(inputId = "Data", 
                  label = "Data", 
                  choices = c("A", "B")),
      leafletOutput("map")
      )
    
    server <- server <- function(input, output, session) {
    
      output$map <- renderLeaflet({
                                  if((input$Data) == "A"){
                                    point = c(42.6525, -73.757222)
                                  } 
                                  if((input$Data) == "B"){
                                    point = c(39.283333, -76.616667)
                                  } 
        
        
                                leaflet() %>% 
                                 addProviderTiles("OpenStreetMap.Mapnik") %>%
                                  addMarkers(lat = point[1], lng = point[2])
      })
      
    

    选择“A”时显示“Albany”,选择“B”时显示Baltimore

    基本上:

    ui 是一种“界面”,它将显示什么:

    1. selectInput:你可以在这里选择A或B

    2. leafletOutput: 会显示传单地图

    server 将在您使用selecInput 时完成创建地图和计算动作的“艰巨工作”:

    output$map 表示我们要渲染leafletOuput (这就是为什么它被称为map,如leafletOutput("map")

    然后,根据输入选择(A或B)

     if((input$Data) == "A"){
                              point = c(42.6525, -73.757222)
                            } 
                            if((input$Data) == "B"){
                              point = c(39.283333, -76.616667)
                            } 
    

    我们将奥尔巴尼或巴尔的摩的坐标分配给点。 最后,我们构建地图:

    leaflet() %>% 
       addProviderTiles("OpenStreetMap.Mapnik") %>%
       addMarkers(lat = point[1], lng = point[2])
    

    请考虑到这是一个模拟闪亮,它远非完美,它只是说明性的。

    最好的!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 2021-04-12
      • 2019-04-05
      • 1970-01-01
      • 2017-11-05
      • 2016-09-20
      相关资源
      最近更新 更多