在 shiny with tmap 中使用 clickEvents
Use clickEvents in shiny with tmap
您可以将 clickEvents
用于 shiny 中的 tmap
包,如 中一样。
但是,我不知道如何访问点击事件。每次点击都会给出一个 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)
如果没有给出layerId
,则id
链接到传单对象附加数据中的第一列。
所以解决方案是使第一列成为id列或在形状绘图函数中指定一个layerId
您可以将 clickEvents
用于 shiny 中的 tmap
包,如
但是,我不知道如何访问点击事件。每次点击都会给出一个 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)
如果没有给出layerId
,则id
链接到传单对象附加数据中的第一列。
所以解决方案是使第一列成为id列或在形状绘图函数中指定一个layerId