使用文件输入将标记添加到传单地图

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

我正在尝试根据用户上传的坐标向地图添加标记。我无法将文件输入存储为数据框,然后将坐标从数据框传递到代理地图以添加标记。

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)
r shiny r-leaflet
1个回答
2
投票

您就快到了,只需将读取文件的方式更改为

observe({
   req(input$file)
   df <- read.csv(input$file$datapath)
   proxy <- leafletProxy("mymap", data = df)
   proxy %>% addMarkers(~long, ~lat)
})

即删除引号

'
req
确保在尚未上传时不会抛出错误。上传
csv
时,请确保有标记为
long
lat
的列。

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