首页 > 解决方案 > 选择另一个标记后,如何清除已添加到传单地图的标记?

问题描述

我根据来自页面上的 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)) 

})

标签: rggplot2shinyshinydashboardggmap

解决方案


在您的代理中,您应该先删除标记,然后再添加选定的标记。您可以使用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)删除您不想显示的标记。


推荐阅读