如何将信息从 Leaflet 弹出窗口传递到 Shiny 输出?
How can I pass info from Leaflet popup to Shiny output?
我有一张使用 shapefile 和人口统计数据创建的 Leaflet 地图 (myMap)。地图显示多边形(县)。当我 运行 这张地图自己 - 或者当我从 Shiny 中渲染它时 - 我可以点击一个县,县 ID 会显示在我创建的弹出窗口中。
我一直想弄清楚的是如何从 Shiny 中访问我的弹出值 (ID)。例如,在我的 Shiny 应用程序中,我想单击县并将县 ID 输出到文本显示或存储为变量。
相关代码如下:
ui <- dashboardPage(
dashboardBody(fluidRow(
box(width = 9, status = "info", title = "CountyMap",
leafletOutput("myMap"))
)
server <- function(input, output) {
output$myMap <- renderLeaflet({map2})
observe({
event <- input$myMap_shape_click
if (is.null(event))
return()
print(map2$county) # I know that's not correct,
# but I want the county id from my leaflet popup!
val <- map2$county # Obviously not correct either,
}) # but I would like to store this data
如果这有帮助,我从 Shiny(上图)调用的 Leaflet 地图看起来像这样,其中 "mapable" 是一个大型空间多边形数据框:
popup <- paste0("ID: ", mapable$countyID)
map2 <-leaflet() %>%
addPolygons(data = mapable,
popup = popup
)
任何正确方向的想法或推动将不胜感激!
感谢 user5219763 告诉我 layerId 参数的用途!我回到传单地图并为 layerID 添加矢量化参数。在我的例子中,我从我用于地图的 "large spatial polygons data frame" 中的 "GEO_ID" 列创建了一个值向量。
geoID <- as.vector(mapable$GEOID)
map2 <-leaflet() %>%
addPolygons(data = mapable,
layerId = geoID,
popup = popup
)
当我 运行 闪亮的应用程序并单击一个多边形(县)时,我可以测试 layerId 是否也被传递:
observe({
event <- input$myMap_shape_click
if (is.null(event))
return()
print(event)
})
我有一张使用 shapefile 和人口统计数据创建的 Leaflet 地图 (myMap)。地图显示多边形(县)。当我 运行 这张地图自己 - 或者当我从 Shiny 中渲染它时 - 我可以点击一个县,县 ID 会显示在我创建的弹出窗口中。
我一直想弄清楚的是如何从 Shiny 中访问我的弹出值 (ID)。例如,在我的 Shiny 应用程序中,我想单击县并将县 ID 输出到文本显示或存储为变量。
相关代码如下:
ui <- dashboardPage(
dashboardBody(fluidRow(
box(width = 9, status = "info", title = "CountyMap",
leafletOutput("myMap"))
)
server <- function(input, output) {
output$myMap <- renderLeaflet({map2})
observe({
event <- input$myMap_shape_click
if (is.null(event))
return()
print(map2$county) # I know that's not correct,
# but I want the county id from my leaflet popup!
val <- map2$county # Obviously not correct either,
}) # but I would like to store this data
如果这有帮助,我从 Shiny(上图)调用的 Leaflet 地图看起来像这样,其中 "mapable" 是一个大型空间多边形数据框:
popup <- paste0("ID: ", mapable$countyID)
map2 <-leaflet() %>%
addPolygons(data = mapable,
popup = popup
)
任何正确方向的想法或推动将不胜感激!
感谢 user5219763 告诉我 layerId 参数的用途!我回到传单地图并为 layerID 添加矢量化参数。在我的例子中,我从我用于地图的 "large spatial polygons data frame" 中的 "GEO_ID" 列创建了一个值向量。
geoID <- as.vector(mapable$GEOID)
map2 <-leaflet() %>%
addPolygons(data = mapable,
layerId = geoID,
popup = popup
)
当我 运行 闪亮的应用程序并单击一个多边形(县)时,我可以测试 layerId 是否也被传递:
observe({
event <- input$myMap_shape_click
if (is.null(event))
return()
print(event)
})