我正在尝试创建一个带有渲染表的传单地图(取决于您在地图上单击的位置),以将其上传到我们公司的汇合页面。我想到的第一件事就是使用Shiny创建一个小的web应用程序,但我的公司没有R-Server。我能想到的下一个选择是使用leaflet和htmlwidgets导出html。但是,我不确定是否可以添加一个渲染表(而不是通常的弹出窗口)。有可能吗?有没有(更好的)方法来实现我的目标?
发布于 2018-04-20 17:43:01
您可以使用htmlTable。
library(leaflet)
library(htmlTable)
df <- read.csv(textConnection(
"Name,Lat,Long
Samurai Noodle,47.597131,-122.327298
Kukai Ramen,47.6154,-122.327157
Tsukushinbo,47.59987,-122.326726"
))
table <- data.frame(a = 1:3, b= c("a", "b", "c"))
leaflet(df) %>% addTiles() %>%
addMarkers(~Long, ~Lat, popup = htmlTable(table, rnames = F))

发布于 2018-05-06 21:31:50
正如格雷戈尔所说,您可以使用crosstalk和DT来实现这一点。例如:
library(leaflet)
library(DT)
library(crosstalk)
df <- read.csv(textConnection(
"Name,Lat,Long
Samurai Noodle,47.597131,-122.327298
Kukai Ramen,47.6154,-122.327157
Tsukushinbo,47.59987,-122.326726"
))
sdf <- SharedData$new(df, df$Name)
bscols(leaflet(sdf) %>% addTiles() %>%
addMarkers(~ Long, ~ Lat),
datatable(sdf, width = "100%"))

如果选择表格中的条目,标记将在地图中高亮显示;如果选择地图中的某个区域,表格将根据其中的标记设置子集(只要至少有一个标记)。
https://stackoverflow.com/questions/49938532
复制相似问题