Как в R tmap управлять видимостью слоя в интерактивном режиме? - PullRequest
0 голосов
/ 01 ноября 2018

Начиная с игрушечного примера, я могу быстро получить интерактивную карту в tmap со следующим кодом:

library(tmap)
tmap_mode("view")

data("World", "metro")

tm_shape(World) +
  tm_polygons() +
  tm_shape(metro) +
  tm_dots("pop2010", 
          col = "red") + 
  tm_format("World")

Я бы хотел, чтобы на карте изначально отображался только слой World и был бы скрыт слой метро. Он будет отображаться только в том случае, если пользователь выберет поле для выбора слоев.

Я просмотрел документы tm_shape и tm_dots и не нашел ничего, что могло бы контролировать такое поведение. Это возможно?

1 Ответ

0 голосов
/ 31 декабря 2018

Кажется, что это было решено на GitHub как проблема здесь .

Одним из решений будет использование tmap::tmap_leaflet() для создания листовки-виджета, а затем использование leaflet::hideGroup до отображения / скрытия слоев .

library(tmap)
library(leaflet)

tmap_mode("view")

data("World", "metro")

tm <-
  tm_shape(World) +
  tm_polygons() +
  tm_shape(metro) +
  tm_dots("pop2010", 
          col = "red") + 
  tm_format("World")

# Pipe the tmap object into tmap_leaflet() to create a leaflet widget,
# so that we can use leaflet::hideGroup().
tm %>% 
  tmap_leaflet() %>%
  leaflet::hideGroup("metro")
...