Leaflet和Shiny“找不到函数leafletOutput()”

时间:2019-03-06 20:52:12

标签: r shiny leaflet shinydashboard

我有一个leaflet映射,我希望从映射的A值切换为B的选项。我能找到的每个示例都说使用shiny和{{1} },所有这些示例都包含以下内容:

leaflet

但我不断收到错误消息

  

leafletProxy(或leafletOutput)不存在

。我该如何解决?我的传单是用:

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

1 个答案:

答案 0 :(得分:0)

从您的示例看来,您的shiny没有server功能,因此它将无法正常工作。

请,找到一个可以在其上开始构建的模拟闪亮对象:

图书馆(闪亮) 图书馆(传单)

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”时,它将显示巴尔的摩

基本上:

ui是一种“界面”,将显示如下内容:

  1. selectInput:您可以在此处选择A或B

  2. leafletOutput:将显示传单地图

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

output$map意味着我们要绘制leafletOuput(这就是为什么它是调用映射的原因,如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])

请考虑到这是一种模拟的光泽,它远非完美,只是说明性的。

最好!