Was ich tun möchte, ist ziemlich einfach. Ich möchte alle Klickereignisse auf einer Shiny/Leaflet-Karte speichern können. Hier einige Beispiel-Code:Wie "speichern" klicken Ereignisse in Leaflet Shiny Karte
library(raster)
library(shiny)
library(leaflet)
#load shapefile
rwa <- getData("GADM", country = "RWA", level = 1)
shinyApp(
ui = fluidPage(
leafletOutput("map")
),
server <- function(input, output, session){
#initial map output
output$map <- renderLeaflet({
leaflet() %>%
addTiles() %>%
addPolygons(data = rwa,
fillColor = "white",
fillOpacity = 1,
color = "black",
stroke = T,
weight = 1,
layerId = [email protected]$OBJECTID,
group = "regions")
}) #END RENDER LEAFLET
observeEvent(input$map_shape_click, {
#create object for clicked polygon
click <- input$map_shape_click
print(click$id)
}) #END OBSERVE EVENT
}) #END SHINYAPP
Wie Sie sehen können, kann ich die Klick-IDs drucken (oder ganze Click-Ereignis), wenn ich auf einem Polygon klicken. Leicht genug. In dem Moment, in dem ich auf ein anderes Polygon klicke, gehen alle Informationen über mein erstes angeklicktes Polygon verloren. Ich sehe, dass es eine Argumentoption von autoDestroy = F
in observeEvent
gibt, aber ich bin mir nicht sicher, wie ich das verwenden würde, um vorher angeklickte Polygone zu speichern. Gibt es eine Möglichkeit, ALLE meine Klicks/Klick $ IDs in einem Vektor oder einer Liste zu speichern?
Danke, das macht den Trick! Ich habe den Überblick über Beobachtungsereignisse bekommen, aber ich kann Reaktive noch nicht erfassen. Immer noch ziemlich neu in Shiny. – Lauren
@Lauren Erwähnenswert, dass 'reactiveValues' sich von' reactive() '-Funktionen unterscheiden. Beide sind sehr nützlich in ihrem eigenen – SymbolixAU
@ John Paul, @SymbolixAU, wenn ich mein 'observeEvent' ändere, um nur' zu beobachten', mein zuerst-geklicktes Element wiederholt (scheinbar) unendlich. Irgendeine Einsicht, warum dies passiert/wie man es repariert? Oder sollte ich eine andere Frage stellen? – Lauren