Mapa reativo com passagem de parâmetros

olá senhores, estou fazendo uma aplicação onde o usuário precisa escolher latitude e longitude e o meu mapa mudar em tempo real no App, o mapa muda no view no rstudio mas n na pagina, alguém poderia me ajudar??
meu código:

library(shiny)

long=-52.3594
lati=-31.776

mapa <-leaflet() %>%
addTiles() %>%  # Add default OpenStreetMap map tiles
addMarkers(lng=long, lat=lati,
           popup="teste" )

ui<- fluidPage(
    titlePanel("entrada e saida de dados"),

    mainPanel(
      textInput("idLat","Latitude"),
      textInput("idLong","Longitude"),
      actionButton("get","Processar"),
      mapa
   )
)
server <- function(input, output){
            observeEvent(input$get, {
                 getLati<- as.numeric(input$idLat)
                 getLong<- as.numeric(input$idLong)
                 m <-leaflet() %>%
                     addTiles() %>%  # Add default OpenStreetMap map tiles
                     addMarkers(lng=getLong, lat=getLati,
                     popup="funcionou" )
                    mapa<-m 
            }
          ) 
}

shinyApp(ui, server)

Oi @Felipe_Saraiva_Dos_S,

Como o o mapa também é reativo, você precisa avisar para o R usando leafletOutput() no UI e renderLeaflet no server.

É preciso lembrar que a lógica usada no shiny é diferente do que estamos acostumados, o que pode ser um pouco confuso as vezes. Eu recomendo você dar uma estudadinha na reatividade do shiny.

Uma forma de você criar esse app seria fazendo algo assim:

library(shiny)
library(leaflet)

ui<- fluidPage(
  titlePanel('entrada e saida de dados'),
  
  mainPanel(
    numericInput("idLat","Latitude", -31.776),
    numericInput("idLong","Longitude", -52.3594),
    actionButton("get","Processar"),
    leafletOutput("mymap")
  )
)

server <-  function(input, output){
  
  output$mymap <- renderLeaflet({
    input$get
    leaflet() %>%
      addTiles() %>% # Add default OpenStreetMap map tiles
      addMarkers(
        lng= isolate(input$idLat), 
        lat = isolate(input$idLong),
        popup='funcionou'
      )
  })
  
}

shinyApp(ui, server)
1 curtida