在 R 版本的传单中,如何获取标记被拖动到的位置的经纬度?
library(shiny)
library(leaflet)
library(tidyverse)
ui = fluidPage(
leafletOutput('map'),
textOutput('dragEndLocation')
)
server = function(input, output, session){
output$map = leaflet() %>%
addTiles() %>%
addMarkers(lat = 1,lng = 2, options = markerOptions(draggable = TRUE)
output$dragEndLocation = renderText({
???
})
}
Run Code Online (Sandbox Code Playgroud)
我在 javascript leaflet 中看到,有一个名为dragEnd您可以监听的事件,但它没有在 R leaflet 中实现。(leaflet.js - 单击时设置标记,拖动时更新位置)
这个人(如何在传单闪亮中拖动标记后更新坐标?)通过侦听input$map_marker_mouseout然后检查经纬度是否已更改,做了一个 hack-y 解决方法,但这并不理想。当您快速拖动标记时,鼠标移出会记录多次。对于这个最小的工作示例来说这不是问题,但对于我的实际应用程序来说,它希望在拖动结束后使用较慢的脚本,这使得此解决方法非常错误且缓慢。
有任何想法吗?
嗨,大家好,我已经尝试了几个星期,但我无法完成它.R传单的在线资源也不够.真的需要完成这件事.
请帮忙,非常感谢你.
ui.R - >
library(shiny)
library(ggmap)
library(leaflet)
shinyUI(bootstrapPage(
leafletOutput("map"),
br(),
verbatimTextOutput("out")
)
)
Run Code Online (Sandbox Code Playgroud)
server.R - >
library(shiny)
library(ggmap)
library(leaflet)
shinyServer(function(input, output, session) {
output$map <- renderLeaflet({
p <- input$map_click
if(is.null(p)){
leaflet() %>% setView(lng = -43.1729, lat = -22.9068, zoom = 11) %>%
addTiles(options = providerTileOptions(noWrap = TRUE))
}
else{
address <- revgeocode(c(p$lng,p$lat))
leaflet() %>% setView(lng = p$lng, lat = p$lat, zoom = 16) %>%
addTiles(options = providerTileOptions(noWrap = TRUE)) %>%
addCircles(p$lng, p$lat, weight = 1, radius = 100, color …Run Code Online (Sandbox Code Playgroud)