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