Am Beispiel unten, ich versuche, einen Weg, um herauszufinden, Funktionalität meiner glänzende App, so dass die folgenden Werke hinzuzufügen:Klicken Sie auf Punkte in einer Broschüre Karte als Eingang für ein Grundstück in glänzenden
- Click auf einen Punkt auf der Karte
- das die Handlung nach Station Änderungen und
- Eingänge der entsprechenden Station in den „ein-Station klicken Sie auf“ Seitenleiste
Grundsätzlich würde Ich mag zu können, klicken Sie entweder auf die Karte für eine Station ODER geben Sie die Station manuell mit einer Tastatur ein.
Ist dies mit Beipackzettel möglich? Ich habe Hinweise auf die Verwendung von Plotly gesehen, die die ultimative Lösung sein könnte, aber ich würde gerne, wenn möglich, in einem kleinen Teil blättern, weil ich bereits eine Menge Arbeit mit Flugblatt getan habe. Dies ist ähnlich wie diese question obwohl es Arbeitsbeispiel hier:
library(shiny)
library(leaflet)
library(shinydashboard)
library(ggplot2)
library(dplyr)
data("quakes")
shinyApp(
ui = dashboardPage(title = "Station Lookup",
dashboardHeader(title = "Test"),
dashboardSidebar(
sidebarMenu(
menuItem("Data Dashboard", tabName = "datavis", icon = icon("dashboard")),
menuItem("Select by station number", icon = icon("bar-chart-o"),
selectizeInput("stations", "Click on Station", choices = levels(factor(quakes$stations)), selected = 10, multiple = TRUE)
)
)
),
dashboardBody(
tabItems(
tabItem(tabName = "datavis",
h4("Map and Plot"),
fluidRow(box(width= 4, leafletOutput("map")),
box(width = 8, plotOutput("plot")))
)
)
)
),
server = function(input, output) {
## Sub data
quakes_sub <- reactive({
quakes[quakes$stations %in% input$stations,]
})
output$plot <- renderPlot({
ggplot(quakes_sub(), aes(x = depth, y = mag))+
geom_point()
})
output$map <- renderLeaflet({
leaflet(quakes) %>%
addTiles() %>%
addCircleMarkers(lng = ~long, lat = ~lat, layerId = ~stations, color = "blue", radius = 3) %>%
addCircles(lng = ~long, lat = ~lat, weight = 1,
radius = 1, label = ~stations,
popup = ~paste(stations, "<br>",
depth, "<br>",
mag)
)
})
}
)
Nur Problem mit diesem Ansatz ist, dass der letzte "Klick" in der Auswahl Eingang bleibt - wie Sie es löschen können. Es bleibt dort, bis eine neue "Station" angeklickt wird. In diesem Fall können Sie es manuell vom Feld "Klicken auf Station" zurücksetzen. Das Ändern von 'selected = c (Eingabe von $ stations, station)' zu 'selected = c (station)' behebt dieses Problem, obwohl ich mir absolut sicher bin, warum. – boshek
Auch schlägst du vor, du wirst es melden und ich sollte ... so oder so glücklich. – boshek
ah sah das Problem nicht, lass mich einen Blick darauf werfen. In Bezug auf die Berichterstattung, gehen Sie voran, da ich die Funktionalität im Moment nicht benötige und nicht auf die Updates warten würde, ... – BigDataScientist