Leaflet и Shiny "не удалось найти функцию leafletOutput ()" - PullRequest
1 голос
/ 06 марта 2019

У меня есть карта leaflet, и я хочу выбрать вариант отображения отображаемых значений A на значения B. В каждом примере, который я могу найти, говорится, что используются shiny и leaflet и все эти примеры.включить что-то вроде:

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)

1 Ответ

0 голосов
/ 07 марта 2019

Из вашего примера видно, что ваш 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])
  })

Будет показано «Олбани», когда вы выбираете «А», и Балтимор, когда вы выбираете «Б»

В основном:

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

ПОЖАЛУЙСТА, учтите, что это макет блестящий, он далек от совершенства, это только иллюстративно.

Best!

...