Я довольно новичок в этой области и только начал самостоятельно изучать R. Я пытаюсь визуализировать набор данных деревьев Нью-Йорка с помощью приложения Shiny.
Пока что я могу получить адрес от своего пользователя и отобразить его на карте, но у меня возникают трудности с одновременным отображением деревьев после получения адреса пользователя.Я использую 2 кнопки действий: Поиск - для пользователя для поиска адреса.
Отображение деревьев - после того, как пользователь выполнил поиск по адресу и отобразил маркер на карте, деревья должны отображаться одновременно.
Пока мой код:
datatree <- read.csv("trees.csv", stringsAsFactors = FALSE)
r_colors <- rgb(t(col2rgb(colors()) / 255))
names(r_colors) <- colors()
ui <- fluidPage(
leafletOutput("mymap"),
p(),
textInput(inputId = "address", label = "Address", placeholder = "e.g 66 D Mary Street, Lodi, NJ 7644"),
actionButton("search", "Search"),
actionButton("displaytrees", "Display Trees")
)
server <- function(input, output, session) {
addresspoints <- eventReactive(input$search, {
p <- c(input$address)
q <- geocode(p)
points1 <- data.frame (q)
return(points1)
}, ignoreNULL = FALSE)
treepoints <- eventReactive(input$displaytrees,{
z <- rbind(datatree,addresspoints())
points2 <- data.frame(z)
})
observeEvent(input$search, {
addresspoints()
})
observeEvent(input$displaytrees, {
treepoints()
})
output$mymap <- renderLeaflet({
leaflet() %>%
addProviderTiles(providers$Stamen.TonerLite,
options = providerTileOptions(noWrap = TRUE)
) %>%
addMarkers(data=addresspoints(), label = input$address)
})
}
shinyApp(ui, server)