r - R Shiny - 使用文件输入向传单地图添加标记
问题描述
我正在尝试根据用户上传的坐标向地图添加标记。我无法将文件输入存储为数据框,然后将坐标从数据框传递到代理地图以添加标记。
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)
解决方案
您快到了,只需将读取文件的方式更改为
observe({
req(input$file)
df <- read.csv(input$file$datapath)
proxy <- leafletProxy("mymap", data = df)
proxy %>% addMarkers(~long, ~lat)
})
那就是删除引号'
。确保在req
还没有上传时不会引发错误。上传时csv
确保有标记为long
和的列lat
。
推荐阅读
- excel - 销售清单到采购清单 Excel
- autoit - 恶意 Autoit v3 快捷方式
- perl - 如何用新的文本块替换一个文本块?
- node.js - Promise.all 对象映射搞乱了数据的排序
- javascript - 在 webpack 捆绑的 vue 3 插件中未触发 onMounted 的回调
- python - Django 获取特定用户的所有列的总和
- python - Linux 上可移植的 VS Code 仍然用于包本地用户文件夹而不是环境文件夹,因此导入失败
- flutter - 是否有任何命令可以在具有已知坐标 x 和 y 点的同一手机 android 中运行其他应用程序?比如点击指向该应用程序
- python - 尽管安装命令没有名为“PIL”的模块
- html - 具有相同高度和边距的元素显示不同