我正在 R Shiny 中使用传单库。我想通过单击鼠标在地图上添加新标记。我可以使用
input$mapid_click
选项获取纬度和经度。但我无法使用新标记更新闪亮应用程序中的地图。
您可以使用
leafletProxy
功能添加它们。
library(shiny)
library(leaflet)
ui <- fluidPage(
leafletOutput('map')
)
server <- function(input, output, session) {
output$map <- renderLeaflet({leaflet()%>%addTiles()})
observeEvent(input$map_click, {
click = input$map_click
leafletProxy('map')%>%addMarkers(lng = click$lng, lat = click$lat)
})
}
shinyApp(ui, server)
自闪亮 1.6.0 以来,
observeEvent(event,expression)
已被弃用,取而代之的是 observe(expression) %>% bindEvent(event)
。所以@Wilmar-van-Ommeren 的上面的答案将变成:
library(shiny)
library(leaflet)
ui <- fluidPage(
leafletOutput('map')
)
server <- function(input, output, session) {
output$map <- renderLeaflet({leaflet()%>%addTiles()})
observe({
click = input$map_click
leafletProxy('map')%>%addMarkers(lng = click$lng, lat = click$lat)
}) %>%
bindEvent(input$map_click)
}
shinyApp(ui, server)