我正在制作一个闪亮的应用程序。我正在尝试使我的地图具有交互性,其中地图仅显示选定的站点。不过,现在我的地图显示了数据中每个站点的位置。这就是我到目前为止尝试做的事情。(这是一个简化的代码)
Site_Name <-sample(c('a','b','c'),replace=T,5)
Latitude <-runif(5,min=-26, max=-22)
Longitude<-runif(5,min=-54, max=-48)
Sites <-data.frame(Site_Name,Latitude,Longitude)
fluidPage(
theme = shinytheme("cerulean"),
sidebarLayout(
sidebarPanel(
selectizeInput("sites",
"Site Name",choices= Sites$Site_Name,
options= list(maxItems = 2)),
mainPanel(
tabsetPanel(
tabPanel("Plots",leafletOutput("Station")
)
)
shinyServer(function(input, output, session) {
df1 <- eventReactive(input$sites, {
Sites %>% dplyr::filter(Site_Name %in% input$sites)
})
output$Station = renderLeaflet({
leaflet(data = df1()) %>%
addProviderTiles(providers$Esri.WorldStreetMap) %>%
addMarkers(Sites$Longitude, Sites$Latitude, popup= input$sites,
icon = list(
iconUrl = 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-red.png',
iconSize = c(13, 20)))
})
}
它显示所有,因为你告诉显示所有。您应该将
Sites$Longitude, Sites$Latitude, popup= input$sites
中的 addMarkers
替换为 lng = ~Longitude, lat = ~Latitude, popup= ~Site_Name
。