Estoy construyendo una aplicación que incluye capturas de geolocalización usando el paquete geoloc
Esta es una aplicación de ejemplo:
library(shiny)
library(leaflet)
library(geoloc)
ui <- fluidPage(
h2("Where Am I?"),
tags$p("Click the button to get your location"),
geoloc::button_geoloc("myBtn", "Get my Location"),
tags$br(),
textOutput("coords"),
textOutput("col"),
leafletOutput("lf")
)
server <- function(input, output) {
output$coords <- renderText(paste(input$myBtn_lat, input$myBtn_lon, sep = ", "))
Lats <- reactiveValues(Lat = NULL)
observeEvent(input$myBtn_lat, {
Lats$Lat <- append(Lats$Lat, input$myBtn_lat)
})
output$col <- renderText({
Lats$Lat
})
output$lf <- renderLeaflet({
req(input$myBtn_lon)
req(input$myBtn_lat)
leaflet() %>%
addTiles() %>%
setView(as.numeric(input$myBtn_lon), as.numeric(input$myBtn_lat), zoom = 17) %>%
addMarkers(as.numeric(input$myBtn_lon), as.numeric(input$myBtn_lat), label = "You're here!")
})
}
shinyApp(ui, server)
Tengo dos preguntas para esto:
Cómo obtener un vector de latitudes y longitudes con el botón
Necesito esto porque, por lo general, nos gusta tomar 4 o 5 veces la ubicación y luego usar la mediana.
Esto se ha abordado en esta pregunta, sin embargo, hay algunos problemas que no puedo resolver ya que el botón es personalizado y las entradas no son input$myBtn, sino input$myBtn_lat y input$myBtn_lon, lo encuentro difícil computar. Esto es lo que estoy tratando de hacer con los eventos de observación.
Cómo transformar esto en módulos brillantes
Esto irá a una aplicación brillante más grande, por lo que me encantaría generar módulos para esto, pero nuevamente, el hecho de que la entrada en ui es "myBtn", pero luego en el servidor tengo 2 entradas (MyBtn_lon y MyBtn_lat), hacer es muy difícil de entender
Cualquier ayuda es bienvenida
Solución del problema
Debe hacer clic en "myBtn", no en "myBtn_lat". Así que intenta cambiar observeEvent(input$myBtn_lat
a observeEvent(input$myBtn
. Además, ¿cuál es el propósito de tomar 4 o 5 veces la ubicación? Las coordenadas cambian muy poco cada vez que haces clic en el botón.
No hay comentarios.:
Publicar un comentario