在Shiny中的Leaflet tile map上单击事件

Sam*_*Sam 5 r click leaflet shiny

是否可以从tile图中的clicklet/shiny(在R中)中单击事件获取lat long?(即不是来自任何加载的标记,多边形等).只是为了显示我猜的位置(纬度/经度)信息.

我想也许从这个问题可能但没有运气.

ui <- bootstrapPage(
  tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
  leafletOutput("map", width = "100%", height = "100%")
)

server <- function(input, output,session) {

  output$map <- renderLeaflet({
    leaflet() %>% 
      addProviderTiles("CartoDB.Positron")%>%
      setView(lng = -4, lat= 52.54, zoom = 7)
  })

  #Show popup on click
  observeEvent(input$map_marker_click, {
    click <- input$map_marker_click
    text<-paste("Lattitude ", click$lat, "Longtitude ", click$lng)

    proxy <- leafletProxy("map")
    proxy %>% clearPopups() %>%
      addPopups(click$lng, click$lat, text)
  })

}

runApp(shinyApp(ui, server), launch.browser = TRUE)
Run Code Online (Sandbox Code Playgroud)

最终我想在Leaflet&Shiny中为栅格数据创建一个点击标记(使用返回的纬度/长度),但这将是一个良好的开端(他的qu似乎做了一些事情,但我根本无法再创建它).

Man*_*mar 1

我已经修改了你的代码。请检查这是否是您想要的?

library(shiny)
library(leaflet)

ui <- bootstrapPage(
    tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
    leafletOutput("map", width = "100%", height = "100%")
)

server <- function(input, output, session) {

    output$map <- renderLeaflet({
        leaflet() %>%
            addProviderTiles("CartoDB.Positron") %>%
            setView(lng = -4, lat = 52.54, zoom = 7) %>%
            addTiles(layerId = "map_click")
    })

    observeEvent(input$map_click, {
        click <- input$map_click
        lat <- click$lat
        lng <- click$lng

        proxy <- leafletProxy("map")
        proxy %>% clearPopups() %>%
            addPopups(lng, lat, paste("Latitude:", lat, "Longitude:", lng))

        print(paste("Click coordinates:", lat, lng))
    })
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

在应用程序上,单击地图上的任意位置后,您会看到如下内容:

在此输入图像描述