在点击事件时在地图中添加新标记

问题描述 投票:0回答:2

我正在 R Shiny 中使用传单库。我想通过单击鼠标在地图上添加新标记。我可以使用

input$mapid_click
选项获取纬度和经度。但我无法使用新标记更新闪亮应用程序中的地图。

r shiny r-leaflet
2个回答
2
投票

您可以使用

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)

0
投票

自闪亮 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)


© www.soinside.com 2019 - 2024. All rights reserved.