从一个玩具示例开始,我可以使用以下代码在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_shape
和tm_dots
文档,却没有发现任何可以控制这种行为的东西。有可能吗?
答案 0 :(得分:1)
似乎这也已在GitHub上作为问题here得到解决。
一种解决方案是使用tmap::tmap_leaflet()
创建传单小部件,然后使用leaflet::hideGroup
到show/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")