【发布时间】:2019-12-05 17:25:43
【问题描述】:
在我闪亮的应用程序中,数据是从 PostgreSQL 数据库加载的。数据库可以在会话期间从应用程序更新,因此数据被加载到反应数据帧。它具有经度/纬度,并显示在传单地图上。我希望通过单击它来删除地图上的标记。如果没有反应性数据,它会以适当的方式工作。 我期待帮助了解问题所在。示例代码如下(removeMarker 后标记未删除)
library(shiny)
library(leaflet)
library(dplyr)
ui<-fluidPage(
leafletOutput("map1")
)
server <- function(input,output,session){
getPoints0 <- function(){
mydf <- head(quakes,10)
mydf <- mydf %>% mutate(myid = row_number())
return(mydf)
}
df<-reactiveVal(getPoints0());
output$map1 <- renderLeaflet({
leaflet(data=df()) %>%
addTiles() %>%
addMarkers(
lng = ~long,
lat = ~lat,
layerId = ~myid,
label = paste0("LayerId = ",df()$myid))
})
observe(
leafletProxy("map1") %>%
removeMarker(input$map1_marker_click$id)
)
}
shinyApp(ui = ui,server = server)
【问题讨论】: