想要添加一个 Button 来选择或不选择所有图层,但不使用 shinny。我尝试创建其他标记,但没有成功。
library(ggplot2)
library(leaflet)
library(sp)
library(dplyr)
library(stringr)
library(htmlwidgets)
library(ggmap)
data <- atmprueba_lleno
data <- data[complete.cases(data),]
data.SP <-SpatialPointsDataFrame(data[,c(14,15)], data[,-c(14,15)])
data <- data %>%
mutate(color = case_when(str_detect(volumen, "Muy Bajo") ~ "red",
str_detect(volumen, "Bajo") ~ "darkred",
str_detect(volumen, "Regular") ~ "orange",
str_detect(volumen, "Bueno") ~ "darkgreen",
str_detect(volumen, "Alto") ~ "green",
TRUE ~ "a default"))
final_data <- as.data.frame(data)
创建这些组以按银行过滤。
groups = as.character(unique(final_data$adquirente))
mapa_colores = leaflet(final_data) %>% addTiles(group = "OpenStreetMap")#>%
# Filtrando por grupos.
for(g in groups)
{
d = final_data[final_data$adquirente == g, ]
#mapa con pinchetas noramles
icons_for <- awesomeIcons(
icon = 'ios-close',
iconColor = 'black',
library = 'ion',
markerColor = d$color
)
mapa_colores = mapa_colores %>% addAwesomeMarkers(data = d, lat = d$latitud, lng =d$longitud, icon=icons_for,group = as.character(g),
popup = paste("<b>","Adquirente:" ,"</b>",d$adquirente,"<br>",
"<b>","Provincia:","</b>", d$provincia, "<br>",
"<b>","Distrito:","</b>", d$distrito,"<br>",
"<b>","Corregimiento","</b>", d$corregimiento, "<br>",
"<b>","ID TERMINAL:","</b>", d$terminales, "<br>",
"<b>","Ubicación:","</b>", d$location, "<br>",
"<b>","Promedio de transacciones:","</b>", d$Promedio, "<br>",
"<b>","Volumen transacciones:","</b>", d$volumen,"<br>",
"<b>","Latitud:","</b>", d$latitud,"<br>",
"<b>","Longitud;","</b>",d$longitud),
clusterOptions = markerClusterOptions())
}
这是图层控件,我想添加一些东西来取消选择或选择所有标记。请不要建议带有闪亮的选项。
mapa_funcional <-mapa_colores %>% addLayersControl(overlayGroups = c(groups), options = layersControlOptions(collapsed = FALSE),position='bottomleft')%>%
htmlwidgets::onRender("
function(el, x) {
var updateLegend = function () {
var selectedGroup = document.querySelectorAll('input:checked')[0].nextSibling.innerText.substr(1);
document.querySelectorAll('.legend').forEach(a => a.hidden=true);
document.querySelectorAll('.legend').forEach(l => {
if (l.children[0].children[0].innerText == selectedGroup) l.hidden=false;
});
};
updateLegend();
this.on('baselayerchange', e => updateLegend());
}")%>%
hideGroup(group= groups)
mapa_funcional