Rshiny 中的交互式地图和纬度输入界面

问题描述

这是我尝试过的

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/
的示例表示

Here's a sample representation

解决方法

如果您希望地图以单击的标记为中心,请将线从 click = ... 移动到 setView 中的 observeEvent()。此外,您不需要将所有内容都包装在 observe() 中。

server <- function {
  output$mapmap <- renderLeaflet(...)

  observeEvent(input$mymap_click) {
    click = ...
    ...
    leafletProxy(...) %>%
      setView(...)

  }

  output$text <- renderText(...)

}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...