您可以将clickEvents
用于tmap
软件包,使其像this example for leaflet in shiny一样闪亮。
但是,我不知道如何添加点击事件。每次点击都会给出一个ID,但是该ID链接到哪里?
请参见以下示例,其中单击事件在控制台上打印。
library(shiny)
library(tmap)
tmap_mode("view")
data("NLD_muni")
# User interface
ui <- fluidPage(
mainPanel(
leafletOutput("map")
)
)
# Sever
server <- function(input, output) {
# define map
output$map <- renderLeaflet(
tmap_leaflet(
tm_shape(NLD_muni) +
tm_polygons('pop_65plus')
)
)
# reactive values for map
rv_map <-reactiveValues(Clicks=list())
observeEvent(input$map_shape_click, {
click <- input$map_shape_click
print(str(click))
rv_map$Clicks<-c(rv_map$Clicks, click$id)
print(rv_map$Clicks)
}) #END OBSERVE EVENT
}
# Run the application
shinyApp(ui = ui, server = server)
答案 0 :(得分:0)
如果未提供id
,则layerId
链接到传单对象附加数据的第一列。
解决方案是使第一列成为id列或在形状绘制函数中指定layerId