问题描述
这是我尝试过的
server <- function(input,output) {
observe({
output$mymap <- renderLeaflet({
leaflet() %>%
addTiles() %>%
fitBounds(-124.7666,49.4000,-67.0583,25.0666)%>%
setView(-95.91245,37.2333,zoom = 3)
})
click = input$mymap_click
if(is.null(click))
return()
leafletProxy('mymap')%>%addMarkers(lng = click$lng,lat = click$lat)%>%
setView(lng = click$lng,lat = click$lat,zoom =7)
output$text <- renderText(paste(click$lng,click$lat))
})
}
ui <- fluidPage(textoutput("text"),leafletoutput("mymap"))
shinyApp(ui = ui,server = server)
但是我想要一些动态的东西,而不是反应性的输出文本,即地图应该随着纬度、经度值的变化而变化,反之亦然
这是来自 https://psl.noaa.gov/eddi/
的示例表示
解决方法
如果您希望地图以单击的标记为中心,请将线从 click = ...
移动到 setView
中的 observeEvent()
。此外,您不需要将所有内容都包装在 observe()
中。
server <- function {
output$mapmap <- renderLeaflet(...)
observeEvent(input$mymap_click) {
click = ...
...
leafletProxy(...) %>%
setView(...)
}
output$text <- renderText(...)
}