如何解决如何在 Mapview 中始终将特定图层保留在背景中
我在尝试使用 Simple Features
和 Mapview
可视化多边形时遇到了一个问题。
我创建了两个矩形,a
和 b
,并将它们放在 Mapview
上的两层。我的问题是,如果我在 b
之前选择 a
,b
矩形将被 a
覆盖并且无法正确显示。
有什么办法可以让我始终将 a
保留在后台,以便在选择时始终显示 b
?
library(mapview)
library(sf)
a<-rbind(c(0,0),c(15,5),c(0,0))
a_polygon<-st_polygon(list(a))
b<-rbind(c(5,1),c(10,4),c(5,1))
b_polygon<-st_polygon(list(b))
mapview(list(st_sfc(a_polygon),st_sfc(b_polygon)),col.regions = list('blue','yellow'),layer.name =c('a','b'))
解决方法
您可以直接使用 mapview
,而不是使用 API
(它是 leaflet
的 leaflet
)。leaflet
允许添加 Panes
to control layers order:
leaflet() %>% addMapPane("background",zIndex = 400) %>%
addMapPane("foreground",zIndex = 500) %>%
addPolygons(data = a_polygon,group="a",color ='blue',fillOpacity= 1,options = pathOptions(pane = "background")) %>%
addPolygons(data = b_polygon,group="b",color='yellow',fillOpacity = 1,options = pathOptions(pane = "foreground")) %>%
addLayersControl(overlayGroups = c("a","b"),options = layersControlOptions(collapsed = FALSE))
,
您可以使用 alpha.regions
参数来允许图层有点透明。
mapview(a_polygon,col.regions = 'blue',alpha.regions = .6) +
mapview(b_polygon,col.regions = 'yellow',alpha.regions = .6)
alpha.regions
可以设置为从 0(不可见)到 1(不透明)。这是先选择 'b',然后选择 'a' 和 alpha 为 0.6 时的样子:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。