【问题标题】:R leaflet is drawing base layers on top of overlay layersR传单正在覆盖层之上绘制基础层
【发布时间】:2018-02-16 18:54:37
【问题描述】:

我遇到了 R 传单的问题:当我更改基础层(多边形)时,覆盖层被推到基础层后面。根据我对 LeafletR 帮助文件的阅读,覆盖层的 z-index 应该始终高于基础层,并且应该保持在顶部。

示例在这里:http://rpubs.com/bvila/overdraw

require(acs)
require(tigris)
require(leaflet)
require(tidyverse)

leaflet(data = counties(state = "UT")) %>% 
  addPolygons(color = "red", fillColor = "orange", group = "base1", fillOpacity = 1) %>% 
  addPolygons(color = "pink", fillColor = "purple", group = "base2", fillOpacity = 1) %>% 
  addPolygons(color = "yellow", fillColor = "green", group = "overlay", fillOpacity = 1) %>% 
  addLayersControl(baseGroups = c("base1", "base2"), options = layersControlOptions(collapsed = F), overlayGroups = "overlay")

【问题讨论】:

    标签: r leaflet r-leaflet


    【解决方案1】:

    多边形图层的 z-index 应始终高于平铺图层。图层控件使用此术语,因为基础组旨在成为基础(平铺)图层,而叠加组旨在成为叠加(多边形)图层。

    您可以使用一点 JavaScript 来解决这个问题,查看添加到管道的 onRender 阶段(您只需为给定的地图对象执行一次):

    leaflet(data = counties(state = "UT")) %>% 
      addPolygons(color = "red", fillColor = "orange", group = "base1", fillOpacity = 1) %>% 
      addPolygons(color = "pink", fillColor = "purple", group = "base2", fillOpacity = 1) %>% 
      addPolygons(color = "yellow", fillColor = "green", group = "overlay", fillOpacity = 0.5) %>% 
      addLayersControl(baseGroups = c("base1", "base2"), options = layersControlOptions(collapsed = F), overlayGroups = "overlay") %>%
      htmlwidgets::onRender("
        function(el, x) {
          this.on('baselayerchange', function(e) {
            e.layer.bringToBack();
          })
        }
      ")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 1970-01-01
      相关资源
      最近更新 更多