通过tmap使用闪亮的clickEvents

时间:2019-03-04 08:33:35

标签: r shiny observers r-leaflet tmap

您可以将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)

1 个答案:

答案 0 :(得分:0)

如果未提供id,则layerId链接到传单对象附加数据的第一列。

解决方案是使第一列成为id列或在形状绘制函数中指定layerId