r - 选择另一个标记后,如何清除已添加到传单地图的标记?
问题描述
我根据来自页面上的 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))
})
解决方案
在您的代理中,您应该先删除标记,然后再添加选定的标记。您可以使用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)
删除您不想显示的标记。
推荐阅读
- xamarin - 从 Xamarin Forms Maps 接收通知
- ios - 仅当父 VStack 位于 SwiftUI 中的 List 内时,才会触发按钮的多个操作处理程序
- c# - Prism 7.2 中的 RegisterSingleton 问题
- python - 如何使用 pandas 找到客户满意度?
- python - 在张量流中,有没有办法在构建图形时找出元素输出的形状(等级)?
- django - 使用 OpenCV 从客户端流式传输到 Django 服务器
- c - 代码块中的错误:错误 ld 1 返回了退出状态
- graphql - Github API v4 GraphQL 未按 tagName 返回版本
- php - PHP Prepared Statement SQL with where value
- javascript - 开始输入时显示警报