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

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

我有一个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个回答
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”时会显示Baltimore

基本上:

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])

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

最好!

© www.soinside.com 2019 - 2024. All rights reserved.