#r #shiny #leaflet
Вопрос:
Я пытаюсь добавить маркеры на карту на основе координат, загруженных пользователем. У меня возникли проблемы с сохранением входных данных файла в виде фрейма данных, а затем передачей координат из фрейма данных на прокси-карту для добавления маркеров.
ui <- fluidPage( titlePanel(title = "My Dashboard"), sidebarLayout( fileInput(inputId = "file", label = "File upload"), mainPanel( leafletOutput("mymap") ) ) ) server <- function(input, output) { m <- leaflet() %>% setView(lng = -71.0589, lat = 42.3601, zoom = 12) %>% addProviderTiles(providers$CartoDB.Positron) output$mymap <- renderLeaflet(m) observe({ input$file df <- read.csv('input$file$datapath') proxy <- leafletProxy("mymap", data = df) proxy %>% addMarkers(~long, ~lat) }) shinyApp(ui = ui, server = server)
Комментарии:
1. Привет, добро пожаловать в SO. Можете ли вы быть более точным ? Есть ли у вас ошибки при попытке запустить приложение ? Чтобы получить больше ответов, вы должны привести воспроизводимый пример : было бы неплохо предоставить небольшую выписку из ваших данных, поэтому нам просто нужно скопировать и вставить ваш код. Здесь, я думаю, вам следует перейти
df <- read.csv('input$file$datapath')
наdf <- read.csv(input$file$datapath)
для начала
Ответ №1:
Вы были почти на месте, просто измените способ чтения файла на
observe({ req(input$file) df <- read.csv(input$file$datapath) proxy <- leafletProxy("mymap", data = df) proxy %>% addMarkers(~long, ~lat) })
Это означает удаление кавычек '
. Это req
гарантирует, что при отсутствии загрузки не будет выдано никакой ошибки. При загрузке csv
убедитесь, что есть столбцы, помеченные long
и lat
.