【问题标题】:R Shiny - Add markers to leaflet map using file inputR Shiny - 使用文件输入向传单地图添加标记
【发布时间】:2021-11-30 18:22:09
【问题描述】:

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

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)

【问题讨论】:

  • 您好,欢迎来到 SO。你能更精确一点吗?尝试启动应用程序时是否有错误?要获得更多答案,您应该制作一个可重复的示例:提供一小部分数据会很好,因此我们只需要复制粘贴您的代码。在这里,我认为您应该将 df &lt;- read.csv('input$file$datapath') 更改为 df &lt;- read.csv(input$file$datapath) 作为初学者

标签: r shiny leaflet


【解决方案1】:

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

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

这是删除引号'req 确保在还没有上传时不会引发错误。上传csv 时,请确保有标记为longlat 的列。

【讨论】:

    猜你喜欢
    • 2017-07-29
    • 2023-03-09
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 2020-10-19
    • 1970-01-01
    • 2012-03-07
    相关资源
    最近更新 更多