Marker mouse click event in R leaflet for shiny

前端 未结 2 624
逝去的感伤
逝去的感伤 2020-11-27 18:17

How can I receive a mouse click event on a marker in a leaflet map in R? I\'m using the RStudio/leaflet and running through Shiny.

I\'d like to get the value of a ma

相关标签:
2条回答
  • 2020-11-27 19:04

    You want to use input$MAPID_marker_click. See the example below.

    library(shiny)
    library(leaflet)
    
    latitude <- c(35.94077, 35.83770, 35.84545, 35.81584, 35.79387, 36.05600)
    longitude <- c(-78.58010, -78.78084, -78.72444, -78.62568, -78.64262, -78.67600)
    radius<-c(15, 12, 12, 12, 12, 15)
    ids<-c("a", "b", "c", "d", "e", "f")
    
    shinyApp(
      ui = fluidPage(
        fluidRow(
          leafletMap(
            "map", "100%", 400,
            initialTileLayer = "//{s}.tiles.mapbox.com/v3/jcheng.map-5ebohr46/{z}/{x}/{y}.png",
            initialTileLayerAttribution = HTML('Maps by <a href="http://www.mapbox.com/">Mapbox</a>'),
            options=list(
              center = c(37.45, -93.85),
              zoom = 4,
              maxBounds = list(list(17, -180), list(59, 180))))),
        fluidRow(verbatimTextOutput("Click_text"))),
      server = function(input, output, session){
            map = createLeafletMap(session, 'map')
            session$onFlushed(once=T, function(){
    
              map$addCircleMarker(lat = latitude, 
                                  lng = longitude, 
                                  radius = radius, 
                                  layerId=ids)
            })        
    
            observe({
              click<-input$map_marker_click
              if(is.null(click))
                return()
              text<-paste("Lattitude ", click$lat, "Longtitude ", click$lng)
              text2<-paste("You've selected point ", click$id)
              map$clearPopups()
              map$showPopup( click$lat, click$lng, text)
              output$Click_text<-renderText({
                text2
              })
    
            })
    
      }
    )
    

    The argument layerId in the addCircleMarker function passes the ids to the click$id.

    0 讨论(0)
  • 2020-11-27 19:18

    How does one do this for multiple circle markers (for example in the above, only one circle market was added) with different layer ids

    0 讨论(0)
提交回复
热议问题