在R tmap中,如何在交互模式下控制图层可见性?

时间:2018-11-01 02:16:46

标签: r tmap

从一个玩具示例开始,我可以使用以下代码在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图层,并隐藏Metro图层。仅当用户在图层选择中的方框中打勾时才会显示。

我浏览了tm_shapetm_dots文档,却没有发现任何可以控制这种行为的东西。有可能吗?

1 个答案:

答案 0 :(得分:1)

似乎这也已在GitHub上作为问题here得到解决。

一种解决方案是使用tmap::tmap_leaflet()创建传单小部件,然后使用leaflet::hideGroupshow/hide layers

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")