在 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