1

当我尝试使用Simple Features和可视化多边形时遇到了一个问题Mapview

我创建了两个矩形,a并将b它们放在Mapview两层上。我的问题是,如果我选择bbefore ab矩形将被覆盖a并且不会正确显示。

有什么方法可以让我始终保持a在后台,以便b在选择时始终显示?

library(mapview)
library(sf)

a<-rbind(c(0,0), c(15, 0), c(15, 5), c(0, 5), c(0, 0))
a_polygon<-st_polygon(list(a))

b<-rbind(c(5,1), c(10, 1), c(10, 4), c(5, 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'))

在此处输入图像描述

4

2 回答 2

1

您可以直接使用,而不是使用mapviewwhich is an APIfor 。允许添加到控制层顺序leafletleaflet
leafletPanes

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

在此处输入图像描述

于 2021-03-16T20:43:08.687 回答
0

您可以使用该alpha.regions参数来允许图层有些透明。

mapview(a_polygon, col.regions = 'blue', alpha.regions = .6) +
  mapview(b_polygon, col.regions = 'yellow', alpha.regions = .6)

可以设置从 0(不可见)到 1(不透明)。这是首先选择“b”,然后选择“a”和 0.6 的 alpha的alpha.regions样子:

在此处输入图像描述

于 2021-03-16T20:19:10.013 回答