r labs 我怎样才能传递信息从单张弹出到闪亮的输出?



r plot title (1)

我有一个Leaflet地图(我的地图),我从shapefile和人口统计数据创建。 地图显示多边形(县)。 当我自己运行这个地图 - 或者当我在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参数是什么! 我回到我的小册子地图,并添加vectorID参数。 在我的情况下,我从地图的“大空间多边形数据框”中的“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)      
  })