Shiny 单击标记打开绘图/数据表

Shiny 单击标记打开绘图/数据表,shiny,leaflet,action,Shiny,Leaflet,Action,我正在写一份有光泽的传单。这些工具是基本的,我有一个带有一些标记的地图(来自一个带有LONG和LAT的表) 我想做的是在单击标记时打开一个表或图形 有简单的方法吗 你有一个非常简单的例子吗:你在地图上有一个maker,你点击标记,有一个绘图、一个表格或jpeg正在打开?这里有一个传单示例文件: #单击地图时,显示包含城市信息的弹出窗口 观察({ 传单代理(“映射”)%%>%clearPopups() 事件此处有一个传单示例文件: #单击地图时,显示包含城市信息的弹出窗口 观察({ 传单代理(

我正在写一份有光泽的传单。这些工具是基本的,我有一个带有一些标记的地图(来自一个带有LONG和LAT的表)

我想做的是在单击标记时打开一个表或图形

有简单的方法吗


你有一个非常简单的例子吗:你在地图上有一个maker,你点击标记,有一个绘图、一个表格或jpeg正在打开?

这里有一个传单示例文件:

#单击地图时,显示包含城市信息的弹出窗口
观察({
传单代理(“映射”)%%>%clearPopups()

事件此处有一个传单示例文件:

#单击地图时,显示包含城市信息的弹出窗口
观察({
传单代理(“映射”)%%>%clearPopups()
事件这里是另一个例子,稍加修改。当你点击一个标记时,下表将相应地改变

除此之外,本手册还有一个很好的参考资料:

图书馆(传单)
图书馆(闪亮)
myData这里是另一个例子,稍加修改。当您单击一个标记时,下表将相应地更改

除此之外,本手册还有一个很好的参考资料:

图书馆(传单)
图书馆(闪亮)

myData这是相对简单的。请看下面的例子:;之后,你可以在这里检查代码:特别是这个js事件处理文件:这是相对简单的。请看下面的例子:;之后,你可以在这里检查代码:特别是这个js事件处理文件:嗯,我假设传单地图上有多个标记,对吗?
input$map\u shape\u click
是一个包含有关已单击对象的详细信息的对象。我建议您为“可单击对象”(将标记作为光学表示)提供唯一id(uid)以及更多信息。通过使用uid,您还可以访问其他信息。例如,上面的示例打开了一个弹出窗口,但您也可以修改一些其他输出(表格、绘图等),而不是弹出窗口嗯,我假设传单地图上有几个标记,对吗?
input$map\u shape\u click
是一个对象,包含有关已单击对象的详细信息。我建议您为“可单击对象”(将标记作为光学表示)提供唯一id(uid)以及更多信息。通过使用uid,您还可以访问其他信息。例如,上面的示例打开了一个弹出窗口,但您也可以修改一些其他输出(表格、绘图等),而不是弹出窗口@David Cheminet为您做这项工作?您现在可以在对象
myData
中存储任何信息,因为您有链接到标记的
id
键。然后只需更换对象。
myData
可以是任何内容,但是如果您想在表中显示它,请确保它是表/矩阵/df对象。祝您好运!@David Cheminet对您有用吗?您现在可以将任何信息存储在对象
myData
中,因为您有链接到标记的
id
键。然后只需更换对象。
myData
可以是任何内容,但是如果您想在表中显示它,请确保它是表/矩阵/df对象。祝您好运!
 # When map is clicked, show a popup with city info
  observe({
    leafletProxy("map") %>% clearPopups()
    event <- input$map_shape_click
    if (is.null(event))
      return()

    isolate({
      showZipcodePopup(event$id, event$lat, event$lng)
    })
  })
library(leaflet)
library(shiny)
myData <- data.frame(
  lat = c(54.406486, 53.406486),
  lng = c(-2.925284, -1.925284),
  id = c(1,2)
)
ui <- fluidPage(
  leafletOutput("map"),
  p(),
  tableOutput("myTable")
)
server <- shinyServer(function(input, output) {
  data <- reactiveValues(clickedMarker=NULL)
  # produce the basic leaflet map with single marker
  output$map <- renderLeaflet(
    leaflet() %>%
      addProviderTiles("CartoDB.Positron") %>%
      addCircleMarkers(lat = myData$lat, lng = myData$lng, layerId = myData$id)  
  )
  # observe the marker click info and print to console when it is changed.
  observeEvent(input$map_marker_click,{
    print("observed map_marker_click")
    data$clickedMarker <- input$map_marker_click
    print(data$clickedMarker)
    output$myTable <- renderTable({
      return(
        subset(myData,id == data$clickedMarker$id)
      )
    })
  })
})
shinyApp(ui, server)