我正在使用 leaftlet.extras R包在地图内添加Gps控件。 我在代码内使用扩展名 addControlGPS :
... %>%
addControlGPS(options = gpsOptions(position = "topleft", activate = TRUE,
autoCenter = TRUE, maxZoom = 60,
setView = TRUE)) %>%
...
控制器工作正常。
我需要提取Gps坐标以在我的代码中重新用作其他函数的参数。有什么办法吗?
答案 0 :(得分:2)
每次gps位置更新时,坐标都会写入map.id+'_gps_located
。您可以在htmlwidgets/bindings文件夹的git文件夹中找到所有leaflet.extras
绑定。
工作示例
library(leaflet)
library(leaflet.extras)
library(shiny)
ui <- fluidPage(
leafletOutput('map')
)
server <- function(input, output, session) {
output$map <- renderLeaflet({ leaflet()%>%addTiles() %>%
addControlGPS(options = gpsOptions(position = "topleft", activate = TRUE,
autoCenter = TRUE, maxZoom = 60,
setView = TRUE))})
observe(
print(input$map_gps_located)
)
}
shinyApp(ui, server)
答案 1 :(得分:0)
我最近在使用的应用程序遇到类似的问题。
您可以使用_marker_click功能从传单地图中提取gps坐标,这是您指定为传单渲染语句输出的地图标签。
就我而言,这是我用来检索坐标的代码块。在我的情况下,地图对象的输出名称为sub-score
,因此在事件观察中要考虑的完整输入为parksMap
。该语句可以保存在存储坐标数据的变量中(在我的情况下为parksMap_marker_click
)。最后,您需要将其全部包裹在反应表达式中,以便在单击传单地图中的点时能够保存每个坐标。
pin
该应用程序的完整github存储库可用here。