Как обновить координаты после перетаскивания маркера в листовку блестящей?

Я хочу иметь приложение, которое генерирует новые точки при нажатии, как здесь:R листовка, как нажать на карту и добавить кружок

Но маркеры должны быть перетаскиваемыми, а при перетаскивании координаты должны обновляться, как показано в таблице данных. Я достиг этого с помощью события mouseout. Я нашел это решение, но если я установлю две точки, обе будут иметь одинаковые координаты (от второй точки) и будут обновляться только при срабатывании мыши.

library(shiny)
library(leaflet)

df <- data.frame(longitude = 10.5, latitude = 48)

ui <- fluidPage(
  navbarPage("Title",
         tabPanel("Map",
                  mainPanel(leafletOutput("map", width = "100%", height = "700")
                  )),
         tabPanel("Data", dataTableOutput("table"))
 )
)

server <- function(input, output) {

 output$map <- renderLeaflet({
   leaflet() %>% addTiles()
 })

 df_r <- reactiveValues(new_data = df)

 # reactive list with id of added markers
 clicked_markers <- reactiveValues(clickedMarker = NULL)

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

   clicked_markers$clickedMarker <- c(clicked_markers$clickedMarker, 1)
   id <- length(clicked_markers$clickedMarker)


# Add the marker to the map
   leafletProxy('map') %>%
    addMarkers(lng = click_long, lat = click_lat, group = 'new_circles',
               options = markerOptions(draggable = TRUE), layerId = id) 

# add new point to dataframe
   df_r$new_data <- rbind(rep(NA, ncol(df)), df_r$new_data)
   df_r$new_data$longitude[1] <- click_long
   df_r$new_data$latitude[1] <- click_lat
 })

 # update coordinates of marker on mouseout
 # how do I select the right row in the dataframe? layerId?
 observeEvent(input$map_marker_mouseout,{
   click_marker <- input$map_marker_mouseout
   id <- input$map_marker_mouseout$id

   if(click_marker$lng != df_r$new_data$longitude[id] | click_marker$lat != df_r$new_data$latitude[id]){ # why is this always true??
     df_r$new_data$longitude[id] <- click_marker$lng
     df_r$new_data$latitude[id] <- click_marker$lat
   }
 })

 output$table <- renderDataTable({df_r$new_data})
}

shinyApp(ui = ui, server = server)

Ответы на вопрос(1)

Ваш ответ на вопрос