首页 > 解决方案 > R:传单:使用带有 addRasterImage 的窗格

问题描述

R 的传单现在可以选择用于addMapPane以确定的顺序堆叠传单对象。这适用于矢量数据,但使用它会addRasterImage返回错误消息。有一个特殊options的使用pane光栅吗?

library(leaflet)
library(raster)

r <- raster(ncol=1000, nrow=1000)
r[] <- runif(ncell(r),0,1)
extent(r) <- matrix(c(172, -37, 175, -38), nrow=2)
crs(r)<-sp::CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
pal <- colorNumeric(c("#0C2C84", "#41B6C4", "#FFFFCC"), values(r),
                    na.color = "transparent")


m <- leaflet(m) %>% addTiles() %>% 
  addMapPane("baseMap", zIndex = 410) %>% 
  addMapPane("baseSat", zIndex = 420) %>% 
  addMapPane("data", zIndex = 425) %>% 
  addMapPane("r", zIndex = 430) %>% 
  addProviderTiles(providers$Esri.WorldImagery, group = "Satellite imagery",
                   options = pathOptions(pane = "baseSat")) %>% 
  addProviderTiles(providers$Esri.WorldTerrain,
                   options = pathOptions(pane = "baseMap")) %>% 
  addMarkers(lng=174.768, lat=-36.852, popup="The birthplace of R", 
             options = pathOptions(pane = "data")) %>% 
  addRasterImage(r, colors = pal, opacity = 0.8, project = FALSE, 
                 options = pathOptions(pane = "r"))

Error in addRasterImage(., r, colors = pal, opacity = 0.8, project = FALSE,  : 
  unused argument (options = pathOptions(pane = "r"))

标签: rleaflet

解决方案


很晚才回答这个问题,但我遇到了同样的问题并找到了解决方案。

GitHub 上有一个尚未合并的传单拉取请求,它允许在addRasterImage(). 目前,您可以从此处安装此版本的传单。为了确保以后可以访问或进行更改,我将整个 repo 下载到一个新文件夹中,然后您可以在 RStudio 中打开它并运行:devtools::install().

编辑:现在快速安装(无需下载包本身的本地副本)的更快方法是运行:

remotes::install_github("rstudio/leaflet", ref="joe/feature/raster-options")

完成此操作后,您已经拥有的代码应该可以正常工作。我一直在使用addRasterImage(..., options=leafletOptions(pane="r")),我得到了想要的结果。


推荐阅读