#r #leaflet #r-markdown
Вопрос:
Если мы просто возьмем стандартную leaflet
карту, подобную приведенной ниже:
library(leaflet)
library(maps)
mapStates = map("state", fill = TRUE, plot = FALSE)
leaflet(data = mapStates) %>% addTiles() %>%
addPolygons(fillColor = topo.colors(10, alpha = NULL), stroke = FALSE)
Есть ли способ добавить кнопку, которая добавляет и удаляет определенные полигоны? Например, если бы карта выше содержала несколько слоев (т. Е. Незастрахованные ставки и средний возраст), я бы хотел, чтобы кнопка или переключатель позволяли пользователю добавлять и удалять все состояния, начинающиеся с «а» (глупый пример). Поэтому вместо того, чтобы иметь 4 слоя (два со статистикой по всем штатам и два со статистикой по штатам, которые не начинаются с «а»), у меня было бы только два слоя и кнопка.
Мое предостережение заключается в том, что он должен быть экспортируемым в формате .html, что означает, что я не могу развернуть shiny
решение.
Может быть addEasyButton
, есть какое-то решение?
Ответ №1:
Вам нужно будет добавить уникальный идентификатор в параметр группы функции addPolygons (), а затем передать его в addLayersControl(), согласно https://rstudio.github.io/leaflet/showhide.html
Я не могу полностью предоставить код, так как у меня нет ваших данных о состоянии карты, но вот попытка
library(leaflet)
library(maps)
mapStates = map("state", fill = TRUE, plot = FALSE)
leaflet(data = mapStates) %>% addTiles() %>%
addPolygons(fillColor = topo.colors(10, alpha = NULL), stroke = FALSE, group = "stateShape") %>%
addLayersControl(overlayGroups = c("stateShape"))