R блестящий флажокГруппа для построения данных на карте - PullRequest
0 голосов
/ 07 ноября 2018


Я очень новичок в блеске, и у меня есть вопрос.
У меня есть простой набор данных с наблюдениями (Number_Total) видов (видов) в определенном месте (X, Y).

Я хотел бы создать карту, которая позволит вам выбрать вид в выпадающем меню. Блестящий затем показывает, что вы были вид на карте.

Я довольно далеко (для моего опыта), но выбор видов в меню ничего не делает ...

ui <- (fluidPage(titlePanel("Species Checker"),  
                 sidebarLayout(
                   sidebarPanel(
                      selectizeInput('species', 'Choose species', 
                   choices    = df$Species, multiple = TRUE)
                     ),
                   mainPanel(
                     leafletOutput("CountryMap", 
               width = 1000, height = 500))
                 )
))

Серверная сторона

server <- function(input, output, session){
  output$CountryMap <- renderLeaflet({
    leaflet() %>% addTiles() %>% 
      setView(lng = 10, lat = 40, zoom = 5) %>%
      addCircles(lng = df$Y, lat = df$X, weight = 10, 
      radius =sqrt(df$Number_Total)*15000, popup = df$Species)
  })


  observeEvent(input$species, {

    if(input$species != "")
    {
      leafletProxy("CountryMap") %>% clearShapes()
      index = which(df$Species == input$species)
      leafletProxy("CountryMap")%>% addCircles(lng = df$X[index], 
      lat = df$Y[index],
                                               weight = 1, 
     radius =sqrt(df$Number_Total[index])*30, popup = df$Species[index])
    }
  }) 

}

И, наконец, составьте сюжет

shinyApp(ui = ui, server = server)

Я знаю, что мой код, вероятно, грязный, но опять же, я виню свой опыт =) Мне не удалось сразу получить примерный набор данных здесь, так что здесь это выглядит как картинка

Это результат вышеприведенного кода (с немного другими данными) введите описание изображения здесь

1 Ответ

0 голосов
/ 07 ноября 2018

Вот что вам нужно. Я думаю, что вы достаточно опытны, чтобы понять это, но прокомментируйте, если у вас есть вопросы.

server <- function(input, output, session) {
  # map_data <- reactive({
    # req(input$species)
    # df[df$Species %in% input$species, ]
  # })

  output$CountryMap <- renderLeaflet({
    leaflet() %>% addTiles() %>% 
      setView(lng = 10, lat = 40, zoom = 5)
  })

  map_proxy <- leafletProxy("CountryMap")

  observe({
    md <- df[df$Species %in% input$species, ]
    map_proxy %>%
      addCircles(lng = md$Y, lat = md$X, weight = 10, 
      radius = sqrt(md$Number_Total)*15000, popup = md$Species)
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...