一旦我选择另一个标记,如何将我添加到我的传单地图中的标记清除?

问题描述 投票:1回答:1

我根据用户输入在我的传单地图中添加了标记,该输入来自页面上的selectInput。但是,当输入更改时,原始标记仍保留在地图上。更改输入后如何让标记消失?

这是我的selectizeInput的UI代码。

selectizeInput(inputId = "school",label = "Add marker", choices = data_new[order(data_new$Schools),]$Schools, selected = NULL, multiple = TRUE),

这是我的服务器代码,用于在selectizeInput输入时观察事件。

observeEvent(input$school,{

proxy <- leafletProxy('outputmap')
chosen_school <- data_new[data_new$Schools %in% input$school,]
proxy %>% setView(lng=as.numeric(chosen_school$lon), lat=as.numeric(chosen_school$lat), zoom=17) %>% addMarkers(lng=as.numeric(chosen_school$lon), lat=as.numeric(chosen_school$lat), popup= paste("School: ",chosen_school$Schools, "<br>", "Address: ",chosen_school$Address, "<br>", "Email: ",chosen_school$Email,"<br>","Bus No:", chosen_school$Bus_No),options = popupOptions(closeButton = FALSE)) 

})
r ggplot2 shiny shinydashboard ggmap
1个回答
0
投票

在您的代理中,您应首先删除标记,然后再添加所选标记。您可以使用删除所有标记的clearMarkers()函数执行此操作。

proxy %>% clearMarkers() %>% setView(lng=as.numeric(chosen_school$lon), lat=as.numeric(chosen_school$lat), zoom=17) %>% addMarkers(lng=as.numeric(chosen_school$lon), lat=as.numeric(chosen_school$lat), popup= paste("School: ",chosen_school$Schools, "<br>", "Address: ",chosen_school$Address, "<br>", "Email: ",chosen_school$Email,"<br>","Bus No:", chosen_school$Bus_No),options = popupOptions(closeButton = FALSE)) 

另一种方法是在标记上添加layerId。然后,您可以使用removeMarker(~layerId)函数删除您不想显示的标记。

© www.soinside.com 2019 - 2024. All rights reserved.